UNPKG

@herbertgao/surgio

Version:

Generating rules for Surge, Clash, Quantumult like a PRO

60 lines 2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SurgioError = exports.isError = exports.isZodError = exports.isSurgioError = void 0; const zod_1 = require("zod"); const zod_validation_error_1 = require("zod-validation-error"); class SurgioError extends Error { providerName; providerPath; nodeIndex; cause; constructor(message, options = {}) { super(message); this.name = 'SurgioError'; this.providerName = options.providerName; this.providerPath = options.providerPath; this.nodeIndex = options.nodeIndex; this.cause = options.cause; } format() { const message = []; message.push(this.name + ': ' + this.message); if (this.providerName) { message.push(`Provider 名称: ${this.providerName}`); } if (this.providerPath) { message.push(`文件地址: ${this.providerPath}`); } if (typeof this.nodeIndex === 'number') { message.push(`错误发生在第 ${this.nodeIndex + 1} 个节点`); } if ((0, exports.isZodError)(this.cause)) { message.push((0, zod_validation_error_1.fromZodError)(this.cause, { prefix: '原因', }).message); } else if ((0, exports.isError)(this.cause) && this.cause.stack) { message.push(' '); message.push(this.cause.stack); } else if (this.stack) { message.push(' '); message.push(this.stack); } return message.join('\n'); } } exports.SurgioError = SurgioError; const isSurgioError = (val) => { return val instanceof SurgioError; }; exports.isSurgioError = isSurgioError; const isZodError = (error) => { return error instanceof zod_1.z.ZodError; }; exports.isZodError = isZodError; const isError = (val) => { return val instanceof Error; }; exports.isError = isError; //# sourceMappingURL=errors.js.map