UNPKG

@selfage/nested_error

Version:

Builds nested errors while preserving stacks.

29 lines 2.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StdError = exports.NestedError = void 0; class NestedError extends Error { constructor(name, message, cause) { super(message); this.cause = cause; this.name = name; // stack is a non-standard property that its implementation is not in // specification. if (this.stack && this.cause) { if (this.cause.stack) { this.stack = this.stack + "\nCaused by: " + cause.stack; } else { this.stack = this.stack + "\nCaused by: " + cause; } } } } exports.NestedError = NestedError; class StdError extends NestedError { constructor(message, cause) { super("StdError", message, cause); this.cause = cause; } } exports.StdError = StdError; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLFdBQVksU0FBUSxLQUFLO0lBQ3BDLFlBQW1CLElBQVksRUFBRSxPQUFnQixFQUFTLEtBQVc7UUFDbkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRHlDLFVBQUssR0FBTCxLQUFLLENBQU07UUFFbkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFFakIscUVBQXFFO1FBQ3JFLGlCQUFpQjtRQUNqQixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzFELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUNwRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWZELGtDQWVDO0FBRUQsTUFBYSxRQUFTLFNBQVEsV0FBVztJQUN2QyxZQUFtQixPQUFnQixFQUFTLEtBQVc7UUFDckQsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFNO0lBRXZELENBQUM7Q0FDRjtBQUpELDRCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE5lc3RlZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIHB1YmxpYyBjYXVzZT86IGFueSkge1xyXG4gICAgc3VwZXIobWVzc2FnZSk7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG5cclxuICAgIC8vIHN0YWNrIGlzIGEgbm9uLXN0YW5kYXJkIHByb3BlcnR5IHRoYXQgaXRzIGltcGxlbWVudGF0aW9uIGlzIG5vdCBpblxyXG4gICAgLy8gc3BlY2lmaWNhdGlvbi5cclxuICAgIGlmICh0aGlzLnN0YWNrICYmIHRoaXMuY2F1c2UpIHtcclxuICAgICAgaWYgKHRoaXMuY2F1c2Uuc3RhY2spIHtcclxuICAgICAgICB0aGlzLnN0YWNrID0gdGhpcy5zdGFjayArIFwiXFxuQ2F1c2VkIGJ5OiBcIiArIGNhdXNlLnN0YWNrO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3RhY2sgPSB0aGlzLnN0YWNrICsgXCJcXG5DYXVzZWQgYnk6IFwiICsgY2F1c2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdGRFcnJvciBleHRlbmRzIE5lc3RlZEVycm9yIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZywgcHVibGljIGNhdXNlPzogYW55KSB7XHJcbiAgICBzdXBlcihcIlN0ZEVycm9yXCIsIG1lc3NhZ2UsIGNhdXNlKTtcclxuICB9XHJcbn1cclxuIl19