| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- "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
|