"use strict";
|
Object.defineProperty(exports, "__esModule", { value: true });
|
const error_type_1 = require("./error_type");
|
const TYPE = Symbol.for('BaseError#type');
|
class BaseError extends Error {
|
constructor(options) {
|
super();
|
this.options = options || {};
|
this.message = this.options.message || '';
|
this.code = this.options.code || '';
|
this.name = this.constructor.name;
|
}
|
static getType(err) {
|
return err[TYPE] || error_type_1.default.BUILTIN;
|
}
|
static from(err, ...args) {
|
const ErrorClass = this;
|
const newErr = new ErrorClass(...args);
|
newErr.message = err.message;
|
newErr.stack = err.stack;
|
for (const key of Object.keys(err)) {
|
newErr[key] = err[key];
|
}
|
return newErr;
|
}
|
}
|
exports.default = BaseError;
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw2Q0FBcUM7QUFFckMsTUFBTSxJQUFJLEdBQVcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRWxELE1BQU0sU0FBa0MsU0FBUSxLQUFLO0lBeUJuRCxZQUFZLE9BQVc7UUFDckIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBM0JNLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBVTtRQUM5QixPQUFRLEdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxvQkFBUyxDQUFDLE9BQU8sQ0FBQztJQUNqRCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FHUCxHQUFVLEVBQUUsR0FBRyxJQUFxQjtRQUM3QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxJQUFhLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDN0IsTUFBTSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ3pCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxNQUF5QixDQUFDO0lBQ25DLENBQUM7Q0FhRjtBQUVELGtCQUFlLFNBQVMsQ0FBQyJ9
|