UNPKG

@tarojs/plugin-generator

Version:
61 lines 2.01 kB
"use strict"; /* eslint-disable no-console */ Object.defineProperty(exports, "__esModule", { value: true }); exports.safely = exports.isGeneratorError = exports.GeneratorError = exports.GeneratorErrorType = void 0; exports.GeneratorErrorType = { modifyConfig: 'modifyConfig', emitFile: 'emitFile', }; class GeneratorError extends Error { type; targetFile; constructor(options) { const { type, message, targetFile } = options; super(message); this.type = type; this.name = 'GeneratorError'; this.targetFile = targetFile; } } exports.GeneratorError = GeneratorError; function isGeneratorError(error) { return error instanceof GeneratorError; } exports.isGeneratorError = isGeneratorError; async function safely(fn, options) { try { return await fn(); } catch (error) { if (typeof options?.onError === 'function') { options.onError(error); return options.fallback; } if (isGeneratorError(error)) { switch (error.type) { case exports.GeneratorErrorType.modifyConfig: { console.log('❌ 更新配置文件失败'); console.log(`请添加如下代码至 ${error.targetFile ?? 'config/index.{ts,js}'} 中\n`); break; } case exports.GeneratorErrorType.emitFile: { console.log('❌ 生成文件失败'); if (error.targetFile) { console.log(`请手动添加文件 ${error.targetFile},并添加如下代码至 ${error.targetFile} 中\n`); } break; } default: { break; } } console.log(error.message); } else { console.log(error); } return options?.fallback; } } exports.safely = safely; //# sourceMappingURL=error.js.map