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.
16 lines
795 B
16 lines
795 B
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}` : ''} ]`; |
|
}
|
|
|