Befor generating
This commit is contained in:
+47
@@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Ono = void 0;
|
||||
const extend_error_1 = require("./extend-error");
|
||||
const normalize_1 = require("./normalize");
|
||||
const to_json_1 = require("./to-json");
|
||||
const constructor = Ono;
|
||||
exports.Ono = constructor;
|
||||
/**
|
||||
* Creates an `Ono` instance for a specifc error type.
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||||
function Ono(ErrorConstructor, options) {
|
||||
options = normalize_1.normalizeOptions(options);
|
||||
function ono(...args) {
|
||||
let { originalError, props, message } = normalize_1.normalizeArgs(args, options);
|
||||
// Create a new error of the specified type
|
||||
let newError = new ErrorConstructor(message);
|
||||
// Extend the error with the properties of the original error and the `props` object
|
||||
return extend_error_1.extendError(newError, originalError, props);
|
||||
}
|
||||
ono[Symbol.species] = ErrorConstructor;
|
||||
return ono;
|
||||
}
|
||||
/**
|
||||
* Returns an object containing all properties of the given Error object,
|
||||
* which can be used with `JSON.stringify()`.
|
||||
*/
|
||||
Ono.toJSON = function toJSON(error) {
|
||||
return to_json_1.toJSON.call(error);
|
||||
};
|
||||
/**
|
||||
* Extends the given Error object with enhanced Ono functionality, such as nested stack traces,
|
||||
* additional properties, and improved support for `JSON.stringify()`.
|
||||
*/
|
||||
Ono.extend = function extend(error, originalError, props) {
|
||||
if (props || originalError instanceof Error) {
|
||||
return extend_error_1.extendError(error, originalError, props);
|
||||
}
|
||||
else if (originalError) {
|
||||
return extend_error_1.extendError(error, undefined, originalError);
|
||||
}
|
||||
else {
|
||||
return extend_error_1.extendError(error);
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=constructor.js.map
|
||||
Reference in New Issue
Block a user