astro-ghostcms/.pnpm-store/v3/files/6d/ac2f4aca359dcc025af3bd6ec43...

35 lines
897 B
Plaintext

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} }` : ''}`
}