UNPKG

trm-core

Version:

TRM (Transport Request Manager) Core

141 lines (140 loc) 6.2 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.init = void 0; const logger_1 = require("../../logger"); const trmPackage_1 = require("../../trmPackage"); const commons_1 = require("../../commons"); const crypto_1 = require("crypto"); const systemConnector_1 = require("../../systemConnector"); exports.init = { name: 'init', run: (context) => __awaiter(void 0, void 0, void 0, function* () { logger_1.Logger.log('Init step', true); const registry = context.rawInput.packageData.registry; context.rawInput.packageData.name = (0, commons_1.parsePackageName)({ fullName: context.rawInput.packageData.name }).fullName; if (!context.rawInput.packageData.version || context.rawInput.packageData.version.trim().toLowerCase() === 'latest') { context.rawInput.packageData.version = 'latest'; } logger_1.Logger.loading(`Searching TRM package in registry ${registry.name}...`); const trmPackage = new trmPackage_1.TrmPackage(context.rawInput.packageData.name, registry); const artifact = yield trmPackage.fetchRemoteArtifact(context.rawInput.packageData.version); const integrity = (0, crypto_1.createHash)("sha512").update(artifact.binary).digest("hex"); const manifest = yield trmPackage.fetchRemoteManifest(context.rawInput.packageData.version); const trmManifest = manifest.get(); var sVersion = trmManifest.version; if (context.rawInput.packageData.version === 'latest') { sVersion = `latest -> ${trmManifest.version}`; } logger_1.Logger.info(`Ready to install "${trmManifest.name}" version ${sVersion} from registry "${registry.name}".`); context.runtime = { registry, update: undefined, rollback: false, remotePackageData: { version: context.rawInput.packageData.version, trmPackage, trmManifest, manifest, artifact, integrity }, dependenciesToInstall: [], r3trans: undefined, packageTransports: { devc: { binaries: undefined, instance: undefined }, tadir: { binaries: undefined, instance: undefined }, cust: { binaries: undefined, instance: undefined }, lang: { binaries: undefined, instance: undefined } }, packageTransportsData: { tdevc: [], tdevct: [], tadir: [], e071: [] }, installData: { transport: undefined, namespace: undefined, entries: [] }, originalData: { hierarchy: undefined }, generatedData: { devclass: [], namespace: undefined } }; if (context.rawInput.packageData.overwrite === undefined) { context.rawInput.packageData.overwrite = false; } if (!context.rawInput.contextData) { context.rawInput.contextData = {}; } if (!context.rawInput.installData) { context.rawInput.installData = {}; } if (!context.rawInput.installData.checks) { context.rawInput.installData.checks = {}; } if (!context.rawInput.installData.import) { context.rawInput.installData.import = {}; } if (!context.rawInput.installData.installDevclass) { context.rawInput.installData.installDevclass = {}; } if (!context.rawInput.installData.installDevclass.replacements) { context.rawInput.installData.installDevclass.replacements = []; } if (!context.rawInput.installData.installTransport) { context.rawInput.installData.installTransport = { create: true }; } logger_1.Logger.loading(`Checking transport layer...`); if (!context.rawInput.installData.installDevclass.transportLayer) { try { context.rawInput.installData.installDevclass.transportLayer = yield systemConnector_1.SystemConnector.getDefaultTransportLayer(); logger_1.Logger.log(`Setting transport layer to default: ${context.rawInput.installData.installDevclass.transportLayer}`, true); } catch (e) { logger_1.Logger.error(e.toString(), true); throw new Error(`Couldn't determine system's default transport layer.`); } } else { if (!(yield systemConnector_1.SystemConnector.isTransportLayerExist(context.rawInput.installData.installDevclass.transportLayer))) { throw new Error(`Transport layer "${context.rawInput.installData.installDevclass.transportLayer}" doesn't exist.`); } } }), revert: (context) => __awaiter(void 0, void 0, void 0, function* () { logger_1.Logger.log('Rollback init step', true); if (context.runtime && context.runtime.rollback) { logger_1.Logger.success(`Rollback executed.`); } }) };