UNPKG

@bigmi/core

Version:

TypeScript library for Bitcoin apps.

50 lines 1.5 kB
import { version } from '../version.js'; let errorConfig = { version: `bigmi@${version}`, }; export function setErrorConfig(config) { errorConfig = config; } export class BaseError extends Error { constructor(shortMessage, args = {}) { const details = (() => { if (args.cause instanceof BaseError) { return args.cause.details; } if (args.cause?.message) { return args.cause.message; } return args.details; })(); const message = [ shortMessage || 'An error occurred.', '', ...(args.metaMessages ? [...args.metaMessages, ''] : []), ...(details ? [`Details: ${details}`] : []), ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []), ].join('\n'); super(message, args.cause ? { cause: args.cause } : undefined); this.name = 'BaseError'; this.details = details; this.metaMessages = args.metaMessages; this.name = args.name ?? this.name; this.shortMessage = shortMessage; this.version = version; } walk(fn) { return walk(this, fn); } } function walk(err, fn) { if (fn?.(err)) { return err; } if (err && typeof err === 'object' && 'cause' in err && err.cause !== undefined) { return walk(err.cause, fn); } return fn ? null : err; } //# sourceMappingURL=base.js.map