Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import { LEVEL, MESSAGE } from '../../triple-beam' import format from '../format' export interface ErrorsOptions { /** * If `true`, the `Error` object's `stack` property will be appended to the `info` object. */ stack?: boolean /** * If `true`, the `Error` object's `cause` property will be appended to the `info` object. */ cause?: boolean } /* * function errors (info) * If the `message` property of the `info` object is an instance of `Error`, * replace the `Error` object its own `message` property. * * Optionally, the Error's `stack` and/or `cause` properties can also be appended to the `info` object. */ export default format<ErrorsOptions>((einfo, { stack, cause } = {}) => { if (einfo instanceof Error) { const info = { ...einfo, level: einfo.level, [LEVEL]: einfo[LEVEL] || einfo.level, message: einfo.message, [MESSAGE]: einfo[MESSAGE] || einfo.message, } stack && (info.stack = einfo.stack) cause && (info.cause = einfo.cause) return info } // eslint-disable-next-line ts/ban-ts-comment // @ts-ignore if (!(einfo.message instanceof Error)) return einfo // Assign all enumerable properties and the // message property from the error provided. const err = einfo.message Object.assign(einfo, err) einfo.message = err.message einfo[MESSAGE] = err.message // Assign the stack and/or cause if requested. stack && (einfo.stack = err.stack) cause && (einfo.cause = err.cause) return einfo }) |