UNPKG

@areslabs/alita-core

Version:

alita-core

65 lines (51 loc) 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = myTraverse; var _traverse = _interopRequireDefault(require("@babel/traverse")); var _codeFrame = require("@babel/code-frame"); var _configure = _interopRequireDefault(require("../configure")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function myTraverse(ast, opts) { const newOpts = wrappCatchOpts(ast, opts); (0, _traverse.default)(ast, newOpts); } function wrappCatchOpts(ast, opts) { const newOpts = {}; const allKeys = Object.keys(opts); for (let i = 0; i < allKeys.length; i++) { const k = allKeys[i]; const v = opts[k]; if (typeof v === 'function') { newOpts[k] = wrapperCatch(ast, v); } else { newOpts[k] = v; } } return newOpts; } function wrapperCatch(ast, func) { return function (...args) { try { return func(...args); } catch (e) { const relativeFilePath = ast.__filepath.replace(_configure.default.inputFullpath, ''); const code = ast.__sourceCode; const loc = args[0].node.loc; if (!loc) { console.log(`异常信息:\n`.error, e); throw e; } const result = (0, _codeFrame.codeFrameColumns)(code, loc, { highlightCode: true, linesAbove: 2, linesBelow: 2 }); console.log(`${relativeFilePath} 转化出错,这可能是alita本身的bug,please submit an issue with below infomations。`.error); console.log(`代码片段:\n`.error, result); console.log(`异常信息:\n`.error, e); throw e; } }; }