UNPKG

@hadss/hmrouter-plugin

Version:

HMRouter Compiler Plugin

76 lines (75 loc) 4.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PluginError = exports.ErrorCode = void 0; const framework_1 = require("../../framework"); var ErrorCode; (function (ErrorCode) { ErrorCode[ErrorCode["UNKNOWN_ERROR"] = 40000000] = "UNKNOWN_ERROR"; ErrorCode[ErrorCode["DUPLICATE_NAME"] = 40000001] = "DUPLICATE_NAME"; ErrorCode[ErrorCode["WRONG_DECORATION"] = 40000002] = "WRONG_DECORATION"; ErrorCode[ErrorCode["REPEAT_ANNOTATION"] = 40000003] = "REPEAT_ANNOTATION"; ErrorCode[ErrorCode["ERROR_CONFIG"] = 40000004] = "ERROR_CONFIG"; ErrorCode[ErrorCode["NOT_EMPTY_STRING"] = 40000005] = "NOT_EMPTY_STRING"; ErrorCode[ErrorCode["INVALID_STRING_VALUE"] = 40000006] = "INVALID_STRING_VALUE"; ErrorCode[ErrorCode["ERROR_PAGE_SOURCE_FILE"] = 40000007] = "ERROR_PAGE_SOURCE_FILE"; ErrorCode[ErrorCode["FILE_ACCESS_ERROR"] = 40000101] = "FILE_ACCESS_ERROR"; ErrorCode[ErrorCode["FILE_NOT_FOUND"] = 40000102] = "FILE_NOT_FOUND"; ErrorCode[ErrorCode["PARSE_FILE_ERROR"] = 40000103] = "PARSE_FILE_ERROR"; ErrorCode[ErrorCode["TEMPLATE_RENDER_ERROR"] = 40000201] = "TEMPLATE_RENDER_ERROR"; ErrorCode[ErrorCode["TEMPLATE_NOT_FOUND"] = 40000202] = "TEMPLATE_NOT_FOUND"; ErrorCode[ErrorCode["UNKNOWN_CLASS"] = 40000301] = "UNKNOWN_CLASS"; ErrorCode[ErrorCode["UNKNOWN_PROPERTY"] = 40000302] = "UNKNOWN_PROPERTY"; ErrorCode[ErrorCode["UNKNOWN_CONSTANT"] = 40000303] = "UNKNOWN_CONSTANT"; ErrorCode[ErrorCode["UNKNOWN_VARIABLE"] = 40000304] = "UNKNOWN_VARIABLE"; ErrorCode[ErrorCode["EXTENSION_LOAD_ERROR"] = 40000401] = "EXTENSION_LOAD_ERROR"; ErrorCode[ErrorCode["EXTENSION_EXECUTE_ERROR"] = 40000402] = "EXTENSION_EXECUTE_ERROR"; })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); const ERROR_MAP = new Map([ [ErrorCode.UNKNOWN_ERROR, 'Unknown error'], [ErrorCode.DUPLICATE_NAME, 'Duplicate name: %s'], [ErrorCode.WRONG_DECORATION, 'Structure with @HMRouter annotation cannot contain NavDestination component, filePath: %s'], [ErrorCode.REPEAT_ANNOTATION, 'File contains multiple annotations of the same type: %s'], [ErrorCode.ERROR_CONFIG, 'Module context is empty, please check the hvigorfile.ts file in the module directory: %s'], [ErrorCode.NOT_EMPTY_STRING, 'Constant value cannot be an empty string: %s'], [ErrorCode.INVALID_STRING_VALUE, 'Invalid string value: %s'], [ErrorCode.ERROR_PAGE_SOURCE_FILE, 'Page source file is empty, please check the pageSourceFile: %s'], [ErrorCode.FILE_ACCESS_ERROR, 'File access error: %s'], [ErrorCode.FILE_NOT_FOUND, 'File not found: %s'], [ErrorCode.PARSE_FILE_ERROR, 'File parsing error: %s'], [ErrorCode.TEMPLATE_RENDER_ERROR, 'Template rendering error: %s'], [ErrorCode.TEMPLATE_NOT_FOUND, 'Template not found: %s'], [ErrorCode.UNKNOWN_CLASS, 'Unknown class: %s'], [ErrorCode.UNKNOWN_PROPERTY, 'Unknown property: %s'], [ErrorCode.UNKNOWN_CONSTANT, 'Unknown constant: %s'], [ErrorCode.UNKNOWN_VARIABLE, 'Unknown variable: %s'], [ErrorCode.EXTENSION_LOAD_ERROR, 'Extension loading error: %s'], [ErrorCode.EXTENSION_EXECUTE_ERROR, 'Extension execution error: %s'], ]); class PluginError extends Error { constructor(code, module, params, data) { let message = ERROR_MAP.get(code) || 'Unknown error'; if (params) { if (Array.isArray(params)) { params.forEach((param) => { message = message.replace(`%s`, param); }); } else { message = message.replace('%s', params); } } super(message); this.code = code; this.module = module; this.data = data; Object.setPrototypeOf(this, PluginError.prototype); this.logError(); } logError() { framework_1.Logger.error(this.module, `error code: ${this.code}, error message: ${this.message}`, this.data); } static create(code, module, params, data) { return new PluginError(code, module, params, data); } } exports.PluginError = PluginError;