Spaces:
Paused
Paused
| // src/format.ts | |
| var POSITIONALS_EXP = /(%?)(%([sdijo]))/g; | |
| function serializePositional(positional, flag) { | |
| switch (flag) { | |
| case "s": | |
| return positional; | |
| case "d": | |
| case "i": | |
| return Number(positional); | |
| case "j": | |
| return JSON.stringify(positional); | |
| case "o": { | |
| if (typeof positional === "string") { | |
| return positional; | |
| } | |
| const json = JSON.stringify(positional); | |
| if (json === "{}" || json === "[]" || /^\[object .+?\]$/.test(json)) { | |
| return positional; | |
| } | |
| return json; | |
| } | |
| } | |
| } | |
| function format(message, ...positionals) { | |
| if (positionals.length === 0) { | |
| return message; | |
| } | |
| let positionalIndex = 0; | |
| let formattedMessage = message.replace( | |
| POSITIONALS_EXP, | |
| (match, isEscaped, _, flag) => { | |
| const positional = positionals[positionalIndex]; | |
| const value = serializePositional(positional, flag); | |
| if (!isEscaped) { | |
| positionalIndex++; | |
| return value; | |
| } | |
| return match; | |
| } | |
| ); | |
| if (positionalIndex < positionals.length) { | |
| formattedMessage += ` ${positionals.slice(positionalIndex).join(" ")}`; | |
| } | |
| formattedMessage = formattedMessage.replace(/%{2,2}/g, "%"); | |
| return formattedMessage; | |
| } | |
| // src/invariant.ts | |
| var STACK_FRAMES_TO_IGNORE = 2; | |
| function cleanErrorStack(error) { | |
| if (!error.stack) { | |
| return; | |
| } | |
| const nextStack = error.stack.split("\n"); | |
| nextStack.splice(1, STACK_FRAMES_TO_IGNORE); | |
| error.stack = nextStack.join("\n"); | |
| } | |
| var InvariantError = class extends Error { | |
| constructor(message, ...positionals) { | |
| super(message); | |
| this.message = message; | |
| this.name = "Invariant Violation"; | |
| this.message = format(message, ...positionals); | |
| cleanErrorStack(this); | |
| } | |
| }; | |
| var invariant = (predicate, message, ...positionals) => { | |
| if (!predicate) { | |
| throw new InvariantError(message, ...positionals); | |
| } | |
| }; | |
| invariant.as = (ErrorConstructor, predicate, message, ...positionals) => { | |
| if (!predicate) { | |
| const formatMessage = positionals.length === 0 ? message : format(message, ...positionals); | |
| let error; | |
| try { | |
| error = Reflect.construct(ErrorConstructor, [ | |
| formatMessage | |
| ]); | |
| } catch (err) { | |
| error = ErrorConstructor(formatMessage); | |
| } | |
| throw error; | |
| } | |
| }; | |
| export { | |
| InvariantError, | |
| format, | |
| invariant | |
| }; | |
| //# sourceMappingURL=index.mjs.map |