trm-core
Version:
TRM (Transport Request Manager) Core
128 lines (127 loc) • 5.61 kB
JavaScript
;
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());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.print = void 0;
const logger_1 = require("../../logger");
const registry_1 = require("../../registry");
const chalk_1 = __importDefault(require("chalk"));
const _getTableTreeText = (tableData) => {
var aValues = [];
Object.keys(tableData).forEach(k => {
aValues.push(`${k}: ${tableData[k]}`);
});
return aValues.join(', ');
};
const _getSapEntriesTreeChildren = (sapEntries, highlightTable) => {
var treeChildren = [];
sapEntries.forEach(k => {
var referenceTableTree = {
text: highlightTable ? chalk_1.default.bold(k.table) : k.table,
children: []
};
k.dependencies.forEach(y => {
const tableKey = _getTableTreeText(y.object);
const tadirKey = `${y.foundIn.pgmid} ${y.foundIn.object} ${y.foundIn.objName}`;
const arrayIndex = referenceTableTree.children.findIndex(o => o.text === tableKey);
const usedByTree = {
text: `Used by`,
children: []
};
const usedByTadirTree = {
text: tadirKey,
children: []
};
usedByTree.children.push(usedByTadirTree);
if (arrayIndex >= 0) {
if (!referenceTableTree.children[arrayIndex].children[0].children.find(o => o.text === tadirKey)) {
referenceTableTree.children[arrayIndex].children[0].children.push(usedByTadirTree);
}
}
else {
referenceTableTree.children.push({
text: tableKey,
children: [usedByTree]
});
}
});
treeChildren.push(referenceTableTree);
});
return treeChildren;
};
exports.print = {
name: 'print',
filter: (context) => __awaiter(void 0, void 0, void 0, function* () {
if (context.rawInput.printOptions.trmDependencies || context.rawInput.printOptions.sapObjectDependencies) {
return true;
}
else {
logger_1.Logger.log(`Skipping dependency print status (user input)`, true);
return false;
}
}),
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
logger_1.Logger.log('Print step', true);
const sapEntries = context.runtime.dependencies.sapObjects;
const unknownDependencies = context.runtime.dependencies.withoutTrmPackage;
const trmDependencies = context.runtime.dependencies.withTrmPackage;
var baseTree = {
text: chalk_1.default.bold(context.rawInput.packageData.package),
children: []
};
var sapEntriesTree = {
text: chalk_1.default.underline(`Required SAP Entries (${sapEntries.reduce((sum, o) => sum + o.dependencies.length, 0)})`),
children: _getSapEntriesTreeChildren(sapEntries, true)
};
var unknownDependenciesTree = {
text: chalk_1.default.underline(`Without TRM Package (${unknownDependencies.length})`),
children: []
};
var trmDependenciesTree = {
text: chalk_1.default.underline(`TRM Packages (${trmDependencies.length})`),
children: []
};
unknownDependencies.forEach(o => {
unknownDependenciesTree.children.push({
text: chalk_1.default.bold(o.devclass),
children: [{
text: `References`,
children: _getSapEntriesTreeChildren(o.sapEntries, false)
}]
});
});
trmDependencies.forEach(o => {
trmDependenciesTree.children.push({
text: chalk_1.default.bold(o.package.packageName),
children: [{
text: `Registry: ${o.package.registry.getRegistryType() === registry_1.RegistryType.PUBLIC ? registry_1.PUBLIC_RESERVED_KEYWORD : o.package.registry.endpoint}`,
children: []
}, {
text: `Version: ${o.package.manifest.get().version}`,
children: []
}, {
text: `References`,
children: _getSapEntriesTreeChildren(o.sapEntries, false)
}]
});
});
if (context.rawInput.printOptions.sapObjectDependencies) {
baseTree.children.push(sapEntriesTree);
}
if (context.rawInput.printOptions.trmDependencies) {
baseTree.children.push(unknownDependenciesTree);
baseTree.children.push(trmDependenciesTree);
}
logger_1.Logger.tree(baseTree);
})
};