UNPKG

trm-core

Version:

TRM (Transport Request Manager) Core

89 lines (88 loc) 4.4 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectDependencies = void 0; const registry_1 = require("../registry"); const systemConnector_1 = require("../systemConnector"); class ObjectDependencies { constructor(object, objName) { this.object = object; this.objName = objName; this.tables = {}; this.trmPackages = []; this.sapPackages = []; } setDependencies(dependencies) { return __awaiter(this, void 0, void 0, function* () { for (const d of dependencies) { const tabkey = yield this.addTableKey(d.tabname, d.tabkey); if (d.trmPackageName) { var trmPackage = (yield systemConnector_1.SystemConnector.getInstalledPackages(false, true)).find(o => o.compareName(d.trmPackageName) && o.compareRegistry(registry_1.RegistryProvider.getRegistry(d.trmPackageRegistry))); if (trmPackage) { var iTrmPackage = this.trmPackages.findIndex(o => o.trmPackage.compareName(trmPackage.packageName) && o.trmPackage.compareRegistry(trmPackage.registry)); if (iTrmPackage < 0) { iTrmPackage = this.trmPackages.push({ trmPackage, dependencies: [] }) - 1; } var iTabKeys = this.trmPackages[iTrmPackage].dependencies.findIndex(o => o.tabname === d.tabname); if (iTabKeys < 0) { iTabKeys = this.trmPackages[iTrmPackage].dependencies.push({ tabname: d.tabname, tabkey: [] }) - 1; } this.trmPackages[iTrmPackage].dependencies[iTabKeys].tabkey.push(tabkey); } } else if (d.devclass) { var iDevclass = this.sapPackages.findIndex(o => o.package === d.devclass); if (iDevclass < 0) { iDevclass = this.sapPackages.push({ package: d.devclass, dependencies: [] }) - 1; } var iTabKeys = this.sapPackages[iDevclass].dependencies.findIndex(o => o.tabname === d.tabname); if (iTabKeys < 0) { iTabKeys = this.sapPackages[iDevclass].dependencies.push({ tabname: d.tabname, tabkey: [] }) - 1; } this.sapPackages[iDevclass].dependencies[iTabKeys].tabkey.push(tabkey); } } return this; }); } addTableKey(table, key) { return __awaiter(this, void 0, void 0, function* () { var offset = 0; var parsed = {}; table = table.trim().toUpperCase(); var definition = yield systemConnector_1.SystemConnector.getTableKeys(table); definition = definition.sort((a, b) => Number(a.position) - Number(b.position)); if (!this.tables[table]) { this.tables[table] = []; } definition.forEach(def => { const len = Number(def.leng); parsed[def.fieldname] = key.slice(offset, offset + len); offset += len; }); this.tables[table].push(parsed); return parsed; }); } } exports.ObjectDependencies = ObjectDependencies;