ucbuilder
Version:
For Developing Applications with multiple form/usercontrols etc.. In Single BrowserWindow...
107 lines (106 loc) • 4.17 kB
JavaScript
"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;