trm-core
Version:
TRM (Transport Request Manager) Core
50 lines (49 loc) • 2.64 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.checkCoreTrmDependencies = checkCoreTrmDependencies;
const getCoreTrmDependencies_1 = require("./getCoreTrmDependencies");
const registry_1 = require("../registry");
const systemConnector_1 = require("../systemConnector");
const semver_1 = require("semver");
function checkCoreTrmDependencies(systemPackages, globalPath) {
return __awaiter(this, void 0, void 0, function* () {
var returnData = {
dependencies: [],
versionNotSatisfiedDependencies: [],
missingDependencies: []
};
const trmDependencies = (0, getCoreTrmDependencies_1.getCoreTrmDependencies)(globalPath);
if (trmDependencies && Object.keys(trmDependencies).length > 0) {
const oPublicRegistry = registry_1.RegistryProvider.getRegistry();
if (!systemPackages) {
systemPackages = yield systemConnector_1.SystemConnector.getInstalledPackages(true);
}
Object.keys(trmDependencies).forEach(packageName => {
const versionRange = trmDependencies[packageName];
const installedPackage = systemPackages.find(o => o.packageName === packageName && o.compareRegistry(oPublicRegistry));
if (!installedPackage || !installedPackage.manifest) {
returnData.missingDependencies.push(packageName);
}
else {
const installedVersion = installedPackage.manifest.get().version;
if (!(0, semver_1.satisfies)(installedVersion, versionRange)) {
returnData.versionNotSatisfiedDependencies.push(installedPackage);
}
else {
returnData.dependencies.push(installedPackage);
}
}
});
}
return returnData;
});
}