UNPKG

ucbuilder

Version:

For Developing Applications with multiple form/usercontrols etc.. In Single BrowserWindow...

107 lines (106 loc) 4.17 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.rfileGenerator = void 0; const fileDataBank_1 = require("ucbuilder/global/fileDataBank"); const common_1 = require("../common"); const regsManage_1 = require("../regs/regsManage"); const rootPathHandler_1 = require("ucbuilder/global/rootPathHandler"); const fs_1 = __importDefault(require("fs")); class rfileGenerator { constructor() { this.Uc_TREE_Template = ""; this.Tpt_TREE_Template = ""; this.MAIN_Template = ""; this.linker = {}; this.key = ""; this.textObj = {}; this.rgxManage = new regsManage_1.regsManage(); this.key = common_1.uniqOpt.guidAs_; this.Uc_TREE_Template = fileDataBank_1.FileDataBank.readFile('ucbuilder/buildTempates/uc/rfiletree.js', { replaceContentWithKeys: true, }); this.Tpt_TREE_Template = fileDataBank_1.FileDataBank.readFile('ucbuilder/buildTempates/tpt/rfiletree.js', { replaceContentWithKeys: true, }); this.MAIN_Template = fileDataBank_1.FileDataBank.readFile('ucbuilder/buildTempates/rfilemain.js', { replaceContentWithKeys: true, }); } fill(rows = []) { let _this = this; for (let i = 0; i < rows.length; i++) { const row = rows[i]; this.fillTreeNodes(row); } //console.log(this.linker); this.fillHeaderAsText(this.linker); } fillTreeNodes(row) { let src = row.src; let pth = src.rootInfo.alices + '/' + src.partInfo.sortDirPath; let parted = pth.split('/'); let obj = this.linker; let lobj = undefined; for (let i = 0; i < parted.length; i++) { const part = parted[i]; if (!obj[part]) obj[part] = {}; obj = obj[part]; //lobj = obj[part]; } obj["path"] = pth; obj["type"] = row.src.extCode; obj["row"] = row; obj["key"] = this.key; } fillHeaderAsText(nodes) { let keys = Object.keys(nodes); for (let i = 0; i < keys.length; i++) { const key = keys[i]; this.fillNameSpaceAsText(key, nodes[key]); } } fillNameSpaceAsText(alice, node) { let tnode = {}; if (!this.textObj[alice]) this.textObj[alice] = {}; tnode = this.textObj[alice]; let texts = this.recursiveText(alice, node); let wholeText = this.generateNew({ treeContent: texts }, this.MAIN_Template); let rInfo = rootPathHandler_1.rootPathHandler.getInfoByAlices(alice); let generateAt = (rInfo.path + '/R.ts').toFilePath(); fs_1.default.writeFileSync(generateAt, wholeText); //console.log(toGenPath); //console.log(wholeText); } recursiveText(alice, node) { let keys = Object.keys(node); let text = ""; for (let i = 0; i < keys.length; i++) { const key = keys[i]; if (node[key].key === this.key) { // found let nd = node[key]; let rw = nd.row; //console.log(rw); switch (rw.src.extCode) { case '.uc': text += this.generateNew(rw, this.Uc_TREE_Template); break; case '.tpt': text += this.generateNew(rw, this.Tpt_TREE_Template); break; } //text += 'FOUND = ' + rw.src.html.rootPath; } else { text += key + ":{"; text += this.recursiveText(key, node[key]); text += "},"; } } return text; } generateNew(node, templateText) { let dta = templateText; dta = this.rgxManage.parse(node, dta); return dta; } } exports.rfileGenerator = rfileGenerator;