@lcap/nasl
Version:
NetEase Application Specific Language
60 lines • 3.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFullAnnotationAndModuleGraph = void 0;
const nasl_utils_1 = require("@lcap/nasl-utils");
const body_1 = require("../release-body/body");
const utils_1 = require("./utils");
/** 全量标注 */
async function getFullAnnotationAndModuleGraph(app, server, logger = nasl_utils_1.internalLogger) {
await logger.info(utils_1.LogEventName, '开始进行全量标注');
await logger.info(utils_1.LogEventName, '开始 TS 代码翻译');
await server.openApp(app);
await logger.info(utils_1.LogEventName, '结束 TS 代码翻译');
await logger.info(utils_1.LogEventName, '开始类型标注');
// // 使用增量标注的模块图建立初始引用关系图
// // @ts-ignore
// server.symbolGraph = new SymbolGraph(app);
// // @ts-ignore
// server.refMgr = new ReferenceManager(server.symbolGraph, app);
// console.time('Collect All Global Definitions');
// // TODO wudengke 重构一下,把所有对nasl的加载放到一个函数里处理
// parseBuiltInFnTsDeclToMaps('nasl.util', naslStdlibMap['nasl.util.ts']);
// server.refMgr.buildTsQNameDefs('nasl.auth', naslStdlibMap['nasl.auth.ts']);
// server.refMgr.buildTsQNameDefs('nasl.http', naslStdlibMap['nasl.http.ts']);
// server.refMgr.buildTsQNameDefs('nasl.logging', naslStdlibMap['nasl.logging.ts']);
// server.refMgr.buildTsQNameDefs('nasl.error', naslStdlibMap['nasl.error.ts']);
// server.refMgr.buildTsQNameDefs('nasl.configuration', naslStdlibMap['nasl.configuration.ts']);
// server.refMgr.buildTsQNameDefs('nasl.ui', naslStdlibMap['nasl.ui.ts']);
// server.typingEnv = env.typeBindings;
// // @ts-ignore
// globalserver.getAllDiagnostics = () => {
// errorDiagnoser.getAllDiagnostics(server.toRaw(app));
// };
// // @ts-ignore
// globalserver.checkNode = (node) => {
// const { semErr, checkNode } = errorDiagnoser;
// semErr.clear();
// checkNode(server.toRaw(node));
// return semErr;
// };
// console.timeEnd('Collect All Global Definitions');
// // 必须先做这个
// env.setRefMgr(server.toRaw(server.refMgr));
// // 先检查 Entity、Structure、Enum
// console.log('先检查 Entity、Structure、Enum、依赖库、连接器中的定义');
// // 检查所有全局逻辑
const annotationData = await (0, body_1.__getNaslAnnotatedJSON)(app);
await logger.info(utils_1.LogEventName, '结束类型标注');
await logger.info(utils_1.LogEventName, '开始构建模块依赖图');
const moduleGraph = (0, utils_1.createModuleGraphByAnnotation)(app);
await logger.info(utils_1.LogEventName, '完成构建模块依赖图');
return {
annotationData,
moduleGraph,
updatedModules: [],
isFull: true,
isSkipFrontendGenerator: false,
};
}
exports.getFullAnnotationAndModuleGraph = getFullAnnotationAndModuleGraph;
//# sourceMappingURL=full.js.map