UNPKG

@lcap/nasl

Version:

NetEase Application Specific Language

65 lines 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeNaslObj = exports.splitNaslObj = void 0; const service_1 = require("@lcap/nasl-concepts/service"); const nasl_concepts_1 = require("@lcap/nasl-concepts"); /** * 拆分 Nasl 对象 * @param app */ function splitNaslObj(app) { const fileNodes = (0, service_1.getFileModuleNodesByNasl)(app); const map = {}; for (const node of fileNodes) { const parentNode = (0, nasl_concepts_1.findNodeObjectByPath)(app, node.parentNodePath || ''); map[node.parentNodePath] = parentNode; } for (const node of fileNodes) { if (!node.parentNodePath) { continue; } const nodeObj = node.nasl; const parentNode = map[node.parentNodePath]; if (Array.isArray(parentNode[node.parentKey])) { const findIndex = parentNode[node.parentKey].findIndex((item) => item === nodeObj); parentNode[node.parentKey].splice(findIndex, 1); } else { console.log(node, 2222); } } return fileNodes; } exports.splitNaslObj = splitNaslObj; /** * 合并 Nasl 对象 * @param app */ function mergeNaslObj(fileNodes) { const app = (fileNodes.find(node => node.nodePath === 'app')).nasl; const map = {}; for (const node of fileNodes) { map[node.nodePath] = node.nasl; } for (const node of fileNodes) { if (!node.parentNodePath) { continue; } const parentNode = map[node.parentNodePath] || (0, nasl_concepts_1.findNodeObjectByPath)(app, node.parentNodePath || ''); if (parentNode) { if (Array.isArray(parentNode[node.parentKey])) { parentNode[node.parentKey].push(node.nasl); } else { console.error(node, 888); } } else { console.error(node, 999); } } // console.log(app, 666); return app; } exports.mergeNaslObj = mergeNaslObj; //# sourceMappingURL=split.js.map