trm-core
Version:
TRM (Transport Request Manager) Core
80 lines (79 loc) • 3.17 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.TrmPackage = void 0;
const trm_commons_1 = require("trm-commons");
const manifest_1 = require("../manifest");
const lockfile_1 = require("../lockfile");
class TrmPackage {
constructor(packageName, registry, manifest) {
this.packageName = packageName;
this.registry = registry;
this.manifest = manifest;
this._dirtyEntries = [];
}
setDirtyEntries(entries) {
this._dirtyEntries = entries;
return this;
}
isDirty() {
return this._dirtyEntries.length > 0;
}
getDirtyEntries() {
return this._dirtyEntries;
}
setDevclass(devclass) {
this._devclass = devclass;
return this;
}
getDevclass() {
return this._devclass;
}
publish(data) {
return __awaiter(this, void 0, void 0, function* () {
const artifact = data.artifact;
const trmManifest = artifact.getManifest().get();
const packageName = trmManifest.name;
var tags;
if (packageName !== this.packageName) {
throw new Error(`Cannot publish package ${packageName}: expected name is ${this.packageName}`);
}
const packageVersion = trmManifest.version;
if (data.tags) {
tags = data.tags.join(',');
}
trm_commons_1.Logger.loading(`Publishing "${packageName}" ${packageVersion} to registry "${this.registry.name}"...`, false);
yield this.registry.publish(packageName, packageVersion, artifact, data.readme, tags);
this.manifest = new manifest_1.Manifest(trmManifest);
return this;
});
}
compareRegistry(registry) {
return this.registry.compare(registry);
}
compareName(name) {
return this.packageName.trim().toUpperCase() === name.trim().toUpperCase();
}
getLockfile(systemPackages) {
return __awaiter(this, void 0, void 0, function* () {
return lockfile_1.Lockfile.generate(this, systemPackages);
});
}
static create(manifest, registry) {
return __awaiter(this, void 0, void 0, function* () {
return new TrmPackage(manifest.get().name, registry, manifest);
});
}
static compare(o1, o2) {
return o1.compareName(o2.packageName) && o1.compareRegistry(o2.registry);
}
}
exports.TrmPackage = TrmPackage;