12345678910111213141516171819202122232425262728293031323334 |
- import { truncate, inspectList, inspectProperty } from './helpers'
- const errorKeys = [
- 'stack',
- 'line',
- 'column',
- 'name',
- 'message',
- 'fileName',
- 'lineNumber',
- 'columnNumber',
- 'number',
- 'description',
- ]
- export default function inspectObject(error, options) {
- const properties = Object.getOwnPropertyNames(error).filter(key => errorKeys.indexOf(key) === -1)
- const name = error.name
- options.truncate -= name.length
- let message = ''
- if (typeof error.message === 'string') {
- message = truncate(error.message, options.truncate)
- } else {
- properties.unshift('message')
- }
- message = message ? `: ${message}` : ''
- options.truncate -= message.length + 5
- const propertyContents = inspectList(
- properties.map(key => [key, error[key]]),
- options,
- inspectProperty
- )
- return `${name}${message}${propertyContents ? ` { ${propertyContents} }` : ''}`
- }
|