reasonable-error
Version:
Create type-safe custom error classes with a specific reason + associated context.
24 lines • 905 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createErrorClass = void 0;
const createErrorClass = () => (className) => {
const ErrorClass = class extends Error {
constructor(message, additionalInfo) {
super(message, {
cause: additionalInfo.cause,
});
this.reason = additionalInfo.reason;
this.context = additionalInfo.context;
}
};
// As a class (which is actually just a function) name is readonly,
// we need to use definedProperty in order to set it
Object.defineProperty(ErrorClass, "name", { value: className });
const isErrorClass = (value) => value instanceof ErrorClass;
return {
[`${className}`]: (ErrorClass),
[`is${className}`]: isErrorClass,
};
};
exports.createErrorClass = createErrorClass;
//# sourceMappingURL=index.js.map