UNPKG

trm-core

Version:

TRM (Transport Request Manager) Core

86 lines (85 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.analyze = void 0; const trm_commons_1 = require("trm-commons"); const trmPackage_1 = require("../../trmPackage"); const registry_1 = require("../../registry"); const semver_1 = require("semver"); exports.analyze = { name: 'analyze', filter: (context) => __awaiter(void 0, void 0, void 0, function* () { if (context.output.dependencies.length > 0) { return true; } else { trm_commons_1.Logger.info(`Package ${context.rawInput.packageData.manifest.name} has no TRM package dependencies`, !context.rawInput.printOptions.information); return false; } }), run: (context) => __awaiter(void 0, void 0, void 0, function* () { trm_commons_1.Logger.log('Analyze step', true); trm_commons_1.Logger.info(`Package ${context.rawInput.packageData.manifest.name} has ${context.output.dependencies.length} TRM package dependencies`, !context.rawInput.printOptions.information); var table = { header: ['Dependency', 'Registry', 'Dependency range', 'Version on system', 'Version status'], data: [] }; var tableData; for (const dependency of context.output.dependencies) { tableData = [dependency.name, dependency.registry || registry_1.PUBLIC_RESERVED_KEYWORD, dependency.version]; const dependencyTrmPackage = new trmPackage_1.TrmPackage(dependency.name, registry_1.RegistryProvider.getRegistry(dependency.registry)); const systemInstalledPackage = context.rawInput.contextData.systemPackages.find(o => trmPackage_1.TrmPackage.compare(o, dependencyTrmPackage)); if (systemInstalledPackage && systemInstalledPackage.manifest) { const installedVersion = systemInstalledPackage.manifest.get().version; tableData.push(installedVersion); if ((0, semver_1.satisfies)(installedVersion, dependency.version)) { tableData.push('OK'); context.runtime.dependenciesStatus.goodVersion.push(dependency); } else { tableData.push('ERR!'); context.runtime.dependenciesStatus.badVersion.push(dependency); } } else { tableData.push('Not found'); tableData.push('ERR!'); context.runtime.dependenciesStatus.badVersion.push(dependency); } table.data.push(tableData); } trm_commons_1.Logger.table(table.header, table.data, !context.rawInput.printOptions.dependencyStatus); context.runtime.dependenciesStatus.goodVersion.forEach(o => { const i = context.output.dependencyStatus.findIndex(k => k.dependency.name === o.name && k.dependency.registry === o.registry); if (i >= 0) { context.output.dependencyStatus[i].match = true; } else { context.output.dependencyStatus.push({ dependency: o, match: true }); } }); context.runtime.dependenciesStatus.badVersion.forEach(o => { const i = context.output.dependencyStatus.findIndex(k => k.dependency.name === o.name && k.dependency.registry === o.registry); if (i >= 0) { context.output.dependencyStatus[i].match = false; } else { context.output.dependencyStatus.push({ dependency: o, match: false }); } }); }) };