UNPKG

@lcap/asl

Version:

NetEase Application Specific Language

81 lines 2.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _1 = require("."); const LogicItem_1 = require("./logic/LogicItem"); exports.default = { records: [], push(record) { const pos = this.deleteOwn(record.id); if (record.typeCheckNote?.message?.filter) record.typeCheckNote.message = record.typeCheckNote.message.filter((item) => !!item); if (!record.typeCheckNote || record.typeCheckNote.status === 'success' || (record.typeCheckNote && record.typeCheckNote.message && record.typeCheckNote.message.length === 0)) return; if (pos === -1) this.records.unshift(record); else this.records.splice(pos, 0, record); }, deleteOwn(id) { const pos = this.records.findIndex((item) => item.id === id); if (pos >= 0) this.records.splice(pos, 1); return pos; }, delete(id) { const node = _1.vertexsMap.get(id); this.deleteOwn(id); if (node) { let children = []; [...LogicItem_1.logicItemKeyOfLogicItem, ...LogicItem_1.logicItemArrayKeyOfLogicItem].forEach((key) => { const item = node[key]; if (item) children = children.concat(item); }); children.forEach((item) => { this.delete(item.id); }); } }, deleteByProcess(processId) { this.records = this.records.filter((record) => { const { processComponentId } = record; if (processComponentId && _1.vertexsMap.get(processComponentId)?.process.id === processId) { return false; } return true; }); }, clear() { this.records = []; }, pushAll(records, outerId) { if (!Array.isArray(records)) return; for (const record of records) { const { id, logicId = outerId?.logicId, typeCheckNote, processComponentId = outerId?.processComponentId, attributes } = record; this.push({ id, logicId, typeCheckNote, processComponentId, attributes, }); ['body', 'consequent', 'alternate'].forEach((key) => { if (!record[key]) return; this.pushAll(record[key], { processComponentId, logicId }); }); if (record['cases']) { for (const rec of record['cases']) { this.pushAll(rec.consequent, { processComponentId, logicId }); } } if (record['right'] && record['right'].level === 'logicNode') { this.pushAll([record['right']], { processComponentId, logicId }); } } }, }; //# sourceMappingURL=typeCheck.js.map