UNPKG

@clerk/shared

Version:

Internal package utils used by the Clerk SDKs

43 lines (41 loc) 1.32 kB
const require_createErrorTypeGuard = require('./createErrorTypeGuard.js'); //#region src/errors/clerkError.ts var ClerkError = class ClerkError extends Error { static kind = "ClerkError"; clerkError = true; code; longMessage; docsUrl; cause; get name() { return this.constructor.name; } constructor(opts) { super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause }); Object.setPrototypeOf(this, ClerkError.prototype); this.code = opts.code; this.docsUrl = opts.docsUrl; this.longMessage = opts.longMessage; this.cause = opts.cause; } toString() { return `[${this.name}]\nMessage:${this.message}`; } static formatMessage(name, msg, code, docsUrl) { const prefix = "Clerk:"; const regex = new RegExp(prefix.replace(" ", "\\s*"), "i"); msg = msg.replace(regex, ""); msg = `${prefix} ${msg.trim()}\n\n(code="${code}")\n\n`; if (docsUrl) msg += `\n\nDocs: ${docsUrl}`; return msg; } }; /** * Type guard to check if a value is a ClerkError instance. */ function isClerkError(val) { return require_createErrorTypeGuard.createErrorTypeGuard(ClerkError)(val) || !!val && typeof val === "object" && "clerkError" in val && val.clerkError === true; } //#endregion exports.ClerkError = ClerkError; exports.isClerkError = isClerkError;