trm-core
Version:
TRM (Transport Request Manager) Core
53 lines (52 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parsePackageName = parsePackageName;
const validateOrganizationName_1 = require("./validateOrganizationName");
function parsePackageName(args) {
var result;
if (args.fullName) {
try {
const match = args.fullName.match(/^@(.*)\/(.*)$/);
result = {
fullName: match[0],
organization: match[1],
name: match[2]
};
}
catch (e) {
result = {
fullName: args.fullName,
name: args.fullName
};
}
}
else if (args.name) {
var fullName;
if (args.organization) {
fullName = `@${args.organization}/${args.name}`;
}
else {
fullName = args.name;
}
result = {
fullName,
organization: args.organization,
name: args.name
};
}
else {
throw new Error('Package name not specified.');
}
result.fullName = result.fullName.toLowerCase();
result.name = result.name.toLowerCase();
if (!result.name.match(/^[a-z\-0-9\.]*$/)) {
throw new Error('Invalid package name.');
}
if (result.organization) {
result.organization = (0, validateOrganizationName_1.validateOrganizationName)(result.organization);
}
if (result.fullName.length > 42) {
throw new Error('Package name cannot exceede 42 characters limit.');
}
return result;
}