UNPKG

@metamask/kernel-errors

Version:
43 lines 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.unmarshalError = unmarshalError; exports.unmarshalErrorOptions = unmarshalErrorOptions; const isMarshaledOcapError_ts_1 = require("./isMarshaledOcapError.cjs"); const index_ts_1 = require("../errors/index.cjs"); /** * Unmarshals a {@link MarshaledError} into an {@link Error}. * * @param marshaledError - The marshaled error to unmarshal. * @returns The unmarshaled error. */ function unmarshalError(marshaledError) { if ((0, isMarshaledOcapError_ts_1.isMarshaledOcapError)(marshaledError)) { return index_ts_1.errorClasses[marshaledError.code].unmarshal(marshaledError, unmarshalErrorOptions); } const { cause, stack } = unmarshalErrorOptions(marshaledError); const error = new Error(marshaledError.message, { cause }); if (stack) { error.stack = stack; } return error; } /** * Gets the error options from a marshaled error. * * @param marshaledError - The marshaled error to get the options from. * @returns The error options. */ function unmarshalErrorOptions(marshaledError) { const output = {}; if (marshaledError.stack) { output.stack = marshaledError.stack; } if (marshaledError.cause) { output.cause = typeof marshaledError.cause === 'string' ? marshaledError.cause : unmarshalError(marshaledError.cause); } return output; } //# sourceMappingURL=unmarshalError.cjs.map