Buckets:
ktongue/docker_container / .cache /opencode /node_modules /pino-std-serializers /lib /err-with-cause.js
| module.exports = errWithCauseSerializer | |
| const { isErrorLike } = require('./err-helpers') | |
| const { pinoErrProto, pinoErrorSymbols } = require('./err-proto') | |
| const { seen } = pinoErrorSymbols | |
| const { toString } = Object.prototype | |
| function errWithCauseSerializer (err) { | |
| if (!isErrorLike(err)) { | |
| return err | |
| } | |
| err[seen] = undefined // tag to prevent re-looking at this | |
| const _err = Object.create(pinoErrProto) | |
| _err.type = toString.call(err.constructor) === '[object Function]' | |
| ? err.constructor.name | |
| : err.name | |
| _err.message = err.message | |
| _err.stack = err.stack | |
| if (Array.isArray(err.errors)) { | |
| _err.aggregateErrors = err.errors.map(err => errWithCauseSerializer(err)) | |
| } | |
| if (isErrorLike(err.cause) && !Object.prototype.hasOwnProperty.call(err.cause, seen)) { | |
| _err.cause = errWithCauseSerializer(err.cause) | |
| } | |
| for (const key in err) { | |
| if (_err[key] === undefined) { | |
| const val = err[key] | |
| if (isErrorLike(val)) { | |
| if (!Object.prototype.hasOwnProperty.call(val, seen)) { | |
| _err[key] = errWithCauseSerializer(val) | |
| } | |
| } else { | |
| _err[key] = val | |
| } | |
| } | |
| } | |
| delete err[seen] // clean up tag in case err is serialized again later | |
| _err.raw = err | |
| return _err | |
| } | |
Xet Storage Details
- Size:
- 1.27 kB
- Xet hash:
- 11e1cd4e1f90e1a95e0a6009ec09904d4bd7d755c108653b108c1c0953b139d3
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.