trm-core
Version:
TRM (Transport Request Manager) Core
121 lines (120 loc) • 7.43 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());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.checkTransports = void 0;
const logger_1 = require("../../logger");
const transport_1 = require("../../transport");
const commons_1 = require("../../commons");
const inquirer_1 = require("../../inquirer");
exports.checkTransports = {
name: 'check-transports',
run: (context) => __awaiter(void 0, void 0, void 0, function* () {
logger_1.Logger.log('Check transports step', true);
logger_1.Logger.loading(`Checking package transports...`);
const aTransports = yield context.runtime.remotePackageData.artifact.getTransportBinaries(context.rawInput.contextData.r3transOptions);
logger_1.Logger.log(`Package content: ${aTransports.map(o => {
return {
trkorr: o.trkorr,
type: o.type
};
})}`, true);
for (const transport of aTransports) {
const valid = yield context.runtime.r3trans.isTransportValid(transport.binaries.data);
if (valid) {
logger_1.Logger.log(`Transport ${transport.trkorr} is valid.`, true);
}
else {
logger_1.Logger.error(`Transport ${transport.trkorr} is invalid.`, true);
throw new Error(`Package contains invalid transports`);
}
}
const aDevcTransports = aTransports.filter(o => o.type === transport_1.TrmTransportIdentifier.DEVC);
const aTadirTransports = aTransports.filter(o => o.type === transport_1.TrmTransportIdentifier.TADIR);
const aLangTransports = aTransports.filter(o => o.type === transport_1.TrmTransportIdentifier.LANG);
const aCustTransports = aTransports.filter(o => o.type === transport_1.TrmTransportIdentifier.CUST);
if (aDevcTransports.length !== 1) {
logger_1.Logger.error(`Zero or multiple DEVC transports found`, true);
throw new Error(`Unexpected content in package.`);
}
else {
context.runtime.packageTransports.devc.binaries = aDevcTransports[0];
logger_1.Logger.log(`DEVC transport is ${context.runtime.packageTransports.devc.binaries.trkorr}.`, true);
}
if (aTadirTransports.length !== 1) {
logger_1.Logger.error(`Zero or multiple TADIR transports found`, true);
throw new Error(`Unexpected content in package.`);
}
else {
context.runtime.packageTransports.tadir.binaries = aTadirTransports[0];
logger_1.Logger.log(`TADIR transport is ${context.runtime.packageTransports.tadir.binaries.trkorr}.`, true);
const tadirE071 = (0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(context.runtime.packageTransports.tadir.binaries.binaries.data, 'E071'));
logger_1.Logger.log(`TADIR E071: ${JSON.stringify(tadirE071)}`, true);
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(tadirE071);
}
if (aLangTransports.length > 0) {
if (context.rawInput.installData.import.noLang === undefined) {
if (!context.rawInput.contextData.noInquirer) {
context.rawInput.installData.import.noLang = !(yield inquirer_1.Inquirer.prompt({
type: `confirm`,
name: `noLang`,
message: `Import language translations transport?`,
default: true,
})).noLang;
}
}
if (!context.rawInput.installData.import.noLang) {
if (aLangTransports.length !== 1) {
logger_1.Logger.error(`Multiple LANG transports found`, true);
throw new Error(`Unexpected content in package.`);
}
context.runtime.packageTransports.lang.binaries = aLangTransports[0];
logger_1.Logger.log(`LANG transport is ${context.runtime.packageTransports.lang.binaries.trkorr}.`, true);
const langE071 = (0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(context.runtime.packageTransports.lang.binaries.binaries.data, 'E071'));
logger_1.Logger.log(`LANG E071: ${JSON.stringify(langE071)}`, true);
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(langE071);
}
}
if (aCustTransports.length > 0) {
if (context.rawInput.installData.import.noCust === undefined) {
if (!context.rawInput.contextData.noInquirer) {
context.rawInput.installData.import.noCust = !(yield inquirer_1.Inquirer.prompt({
type: `confirm`,
name: `noCust`,
message: `Import customizing transport?`,
default: true,
})).noCust;
}
}
if (!context.rawInput.installData.import.noCust) {
if (aCustTransports.length !== 1) {
logger_1.Logger.error(`Multiple CUST transports found`, true);
throw new Error(`Unexpected content in package.`);
}
context.runtime.packageTransports.cust.binaries = aCustTransports[0];
logger_1.Logger.log(`CUST transport is ${context.runtime.packageTransports.cust.binaries.trkorr}.`, true);
const custE071 = (0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(context.runtime.packageTransports.cust.binaries.binaries.data, 'E071'));
logger_1.Logger.log(`CUST E071: ${JSON.stringify(custE071)}`, true);
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(custE071);
}
}
if (context.runtime.packageTransportsData.e071.find(o => o.pgmid === 'R3TR' && o.object === 'DEVC')) {
throw new Error(`Package has undeclared devclass.`);
}
var devcE071 = (0, commons_1.normalize)(yield context.runtime.r3trans.getTableEntries(context.runtime.packageTransports.devc.binaries.binaries.data, 'E071'));
logger_1.Logger.log(`DEVC E071: ${JSON.stringify(devcE071)}`, true);
devcE071 = devcE071.filter(o => o.pgmid === 'R3TR' && o.object === 'DEVC');
if (devcE071.length === 0) {
throw new Error(`Package has no devclass.`);
}
context.runtime.packageTransportsData.e071 = context.runtime.packageTransportsData.e071.concat(devcE071);
context.runtime.installData.entries = context.runtime.packageTransportsData.e071;
})
};