| 12345678910111213141516171819202122232425262728293031323334 |
- import { Ono as OnoConstructor } from "./constructor";
- const singleton = ono;
- export { singleton as ono };
- ono.error = new OnoConstructor(Error);
- ono.eval = new OnoConstructor(EvalError);
- ono.range = new OnoConstructor(RangeError);
- ono.reference = new OnoConstructor(ReferenceError);
- ono.syntax = new OnoConstructor(SyntaxError);
- ono.type = new OnoConstructor(TypeError);
- ono.uri = new OnoConstructor(URIError);
- const onoMap = ono;
- /**
- * Creates a new error with the specified message, properties, and/or inner error.
- * If an inner error is provided, then the new error will match its type, if possible.
- */
- function ono(...args) {
- let originalError = args[0];
- // Is the first argument an Error-like object?
- if (typeof originalError === "object" && typeof originalError.name === "string") {
- // Try to find an Ono singleton method that matches this error type
- for (let typedOno of Object.values(onoMap)) {
- if (typeof typedOno === "function" && typedOno.name === "ono") {
- let species = typedOno[Symbol.species];
- if (species && species !== Error && (originalError instanceof species || originalError.name === species.name)) {
- // Create an error of the same type
- return typedOno.apply(undefined, args);
- }
- }
- }
- }
- // By default, create a base Error object
- return ono.error.apply(undefined, args);
- }
- //# sourceMappingURL=singleton.js.map
|