| import { inspectProperty, inspectList } from './helpers' | |
| 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}` : ''} ]` | |
| } | |