UNPKG

@lcap/nasl

Version:

NetEase Application Specific Language

109 lines 4.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUILibDeclarationWithoutEnv = exports.getUILibDeclaration = void 0; const dependency_1 = require("./dependency"); const custom_1 = require("./custom"); const basic_1 = require("./basic"); const utils_1 = require("../release-body/utils"); const utils_2 = require("../../utils"); async function getUILibDeclaration(axios, app, appInfo) { const ui = { allNodesAPI: {}, needTSComponents: {}, standardUIComponents: {}, basicUITsCode: '', withTypeLibraryTsCode: '', }; const basicUITsCodes = []; const context = { axios, app, appInfo, }; await Promise.all(app.frontendTypes.map(async (ft) => { const { frameworkKind, kind } = ft; const uiPackageInfo = (0, basic_1.getUIPackageInfo)(app, frameworkKind, kind); const manifest = await (0, basic_1.loadBasicMainfest)(context, uiPackageInfo); const [uiDeclaration, tsCode, cssRuleJSON] = await Promise.all([ (0, basic_1.loadBasicUINaslAPI)(context, uiPackageInfo, manifest), (0, basic_1.loadBasicUIDeclaration)(context, uiPackageInfo, manifest), (0, basic_1.loadBasicUICSSInfo)(context, uiPackageInfo, manifest), ]); ui.allNodesAPI = { ...ui.allNodesAPI, ...uiDeclaration.allNodesAPI, }; ui.standardUIComponents = { ...ui.standardUIComponents, }; // merge CssInfo to allNodesAPI Object.keys(cssRuleJSON || {}).forEach((key) => { if (ui.allNodesAPI[key]) { ui.allNodesAPI[key].cssInfo = cssRuleJSON[key]; } else if (ui.allNodesAPI[(0, utils_2.Camel2kebab)(key)]) { ui.allNodesAPI[(0, utils_2.Camel2kebab)(key)].cssInfo = cssRuleJSON[key]; } else { ui.allNodesAPI[key] = { cssInfo: cssRuleJSON[key], }; ui.allNodesAPI[(0, utils_2.Camel2kebab)(key)] = { cssInfo: cssRuleJSON[key], }; } }); basicUITsCodes.push(tsCode); })); const libraryTsCodes = []; await Promise.all(app.dependencies.map(async (dep) => { if (!dep.frontends || dep.frontends.length === 0) { return; } const uiDeclaration = await (0, dependency_1.loadDependencyUIDeclaration)(context, dep); ui.allNodesAPI = { ...ui.allNodesAPI, ...uiDeclaration.allNodesAPI, }; if (uiDeclaration.tsCode) { libraryTsCodes.push(uiDeclaration.tsCode); ui.standardUIComponents = { ...ui.standardUIComponents, ...uiDeclaration.allNodesAPI, }; } else { ui.needTSComponents = { ...ui.needTSComponents, ...uiDeclaration.allNodesAPI, }; } })); const { allNodesAPI } = await (0, custom_1.loadCustomUIDeclaration)(context); ui.allNodesAPI = { ...ui.allNodesAPI, ...allNodesAPI, }; ui.needTSComponents = { ...ui.needTSComponents, ...allNodesAPI, }; ui.basicUITsCode = basicUITsCodes.join('\n\n'); ui.withTypeLibraryTsCode = libraryTsCodes.join('\n\n'); return ui; } exports.getUILibDeclaration = getUILibDeclaration; async function getUILibDeclarationWithoutEnv(axios, app) { const [env, version] = await Promise.all([ (0, utils_1.getEnvConfig)(axios, app.id), (0, utils_1.getVersionDetail)(axios, app), ]); // 此方法是向 app 实例中注入依赖信息 await (0, utils_1.getPackageInfos)(axios, app, env.STATIC_URL, version.fullVersion); return getUILibDeclaration(axios, app, { STATIC_URL: env.STATIC_URL, tenantID: env.officialTenantId, }); } exports.getUILibDeclarationWithoutEnv = getUILibDeclarationWithoutEnv; //# sourceMappingURL=material.js.map