trm-client
Version:
TRM (Transport Request Manager) Client
65 lines (64 loc) • 2.82 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.addRegistry = addRegistry;
const trm_core_1 = require("trm-core");
const registryAlias_1 = require("../registryAlias");
const trm_commons_1 = require("trm-commons");
function addRegistry(commandArgs) {
return __awaiter(this, void 0, void 0, function* () {
const registryName = commandArgs.registryName.trim();
const auth = commandArgs.authentication;
var endpoint = commandArgs.endpoint;
var oAuth;
if (registryName.toLowerCase() === trm_core_1.PUBLIC_RESERVED_KEYWORD) {
throw new Error(`Registry name "${trm_core_1.PUBLIC_RESERVED_KEYWORD}" is a reserved keyword.`);
}
if (registryName.toLowerCase() === trm_core_1.LOCAL_RESERVED_KEYWORD) {
throw new Error(`Registry name "${trm_core_1.LOCAL_RESERVED_KEYWORD}" is a reserved keyword.`);
}
if (auth) {
try {
oAuth = JSON.parse(auth);
}
catch (e) {
throw new Error(`Invalid authentication JSON object.`);
}
}
const inq1 = yield trm_commons_1.Inquirer.prompt({
type: "input",
name: "endpoint",
message: "Registry endpoint",
default: endpoint,
when: !endpoint
});
endpoint = inq1.endpoint || endpoint;
const registry = registryAlias_1.RegistryAlias.create(registryName, endpoint, oAuth);
var pingSuccess = true;
try {
const ping = yield registry.getRegistry().ping();
trm_commons_1.Logger.registryResponse(ping.wallMessage);
}
catch (e) {
trm_commons_1.Logger.error(`Ping to registry "${registryName}" (${endpoint}) failed.`);
pingSuccess = false;
throw e;
}
finally {
if (pingSuccess) {
trm_commons_1.Logger.success(`Registry "${registryName}" added.`);
}
else {
registryAlias_1.RegistryAlias.delete(registryName);
}
}
});
}