You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
17 lines
795 B
17 lines
795 B
1 month ago
|
import { inspectList, inspectProperty } from './helpers.js';
|
||
|
export default function inspectArray(array, options) {
|
||
|
// Object.keys will always output the Array indices first, so we can slice by
|
||
|
// `array.length` to get non-index properties
|
||
|
const nonIndexProperties = Object.keys(array).slice(array.length);
|
||
|
if (!array.length && !nonIndexProperties.length)
|
||
|
return '[]';
|
||
|
options.truncate -= 4;
|
||
|
const listContents = inspectList(array, options);
|
||
|
options.truncate -= listContents.length;
|
||
|
let propertyContents = '';
|
||
|
if (nonIndexProperties.length) {
|
||
|
propertyContents = inspectList(nonIndexProperties.map(key => [key, array[key]]), options, inspectProperty);
|
||
|
}
|
||
|
return `[ ${listContents}${propertyContents ? `, ${propertyContents}` : ''} ]`;
|
||
|
}
|