UNPKG

verror-0

Version:

VError without dependencies on top of nodejs standart library

39 lines (38 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.wrap = wrap; const from_list_js_1 = require("./from-list.js"); /** * Wraps `unknown` to `Error`. Handles nested errors (`AggregateError` case). * * @example * try { * // Throws error with message "database connection error" * await registerTicket(10001000) * } catch (err) { * // Result message: * // "Error register ticket 10001000: database connection error" * throw new VError(wrap(err), 'Error register ticket %s', 10001000) * } */ function wrap(err) { if (typeof err === 'string') { return new Error(err); } if (!err || typeof err !== 'object') { return new Error('unknown'); } if (!(err instanceof Error)) { return new Error('unknown'); } const hasErrorsProperty = 'errors' in err && Array.isArray(err.errors); const errorsNotEmpty = hasErrorsProperty && err.errors.length > 0; if (errorsNotEmpty) { const multiError = (0, from_list_js_1.fromList)(err.errors); if (!multiError) { return new Error('unknown'); } return multiError; } return err; }