@pubgcorp/pk-template
Version:
p template engine for kubernetes
74 lines • 5.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildCommandDescription = exports.bindYargsOption = exports.buildOptionsFromSchema = exports.buildOptionsFromProperties = void 0;
const buildOptionsFromProperties = (yargs, properties) => {
if (!properties) {
return yargs;
}
for (const name of Object.keys(properties)) {
const value = properties[name];
const opt = {
description: `${name} option`,
default: value,
};
yargs.option(name, opt);
}
return yargs;
};
exports.buildOptionsFromProperties = buildOptionsFromProperties;
const buildOptionsFromSchema = (yargs, schema, properties) => {
if (!schema.properties) {
return yargs;
}
for (const name of Object.keys(properties)) {
const prop = schema.properties[name];
if (prop) {
const opt = {
description: prop.description || name,
};
if (prop.enum) {
opt.choices = prop.enum;
}
if (prop.type) {
opt.type = prop.type;
}
if (schema.required && schema.required.includes(name)) {
opt.demandOption = true;
}
else if (properties[name] == null) {
if (!Array.isArray(prop.type) || prop.type.indexOf('null') == -1) {
opt.demandOption = true;
}
}
else {
opt.default = properties[name];
}
yargs.option(name, opt);
}
else {
yargs.option(name, { 'description': `${name} option`, default: properties[name] });
}
}
return yargs;
};
exports.buildOptionsFromSchema = buildOptionsFromSchema;
const bindYargsOption = (yargs, pkt) => {
return pkt['/schema']
? (0, exports.buildOptionsFromSchema)(yargs, pkt['/schema'], pkt['/properties'] || {})
: (0, exports.buildOptionsFromProperties)(yargs, pkt['/properties']);
};
exports.bindYargsOption = bindYargsOption;
const buildCommandDescription = (pkt) => {
let desc = '';
if (pkt['/schema']) {
if (pkt['/schema'].title) {
desc += `${pkt['/schema'].title}`;
}
if (pkt['/schema'].description) {
desc += `\n\n${pkt['/schema'].description}`;
}
}
return desc;
};
exports.buildCommandDescription = buildCommandDescription;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZE9wdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9way15YXJncy9iaW5kT3B0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVPLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxLQUFVLEVBQUUsVUFBZSxFQUFFLEVBQUU7SUFDeEUsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNmLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDMUMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFHO1lBQ1YsV0FBVyxFQUFFLEdBQUcsSUFBSSxTQUFTO1lBQzdCLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUNGLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3pCO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUE7QUFiWSxRQUFBLDBCQUEwQiw4QkFhdEM7QUFFTSxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBVSxFQUFFLE1BQVcsRUFBRSxVQUFlLEVBQUUsRUFBRTtJQUNqRixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUN0QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQzFDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLEVBQUU7WUFDUixNQUFNLEdBQUcsR0FBUTtnQkFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJO2FBQ3RDLENBQUM7WUFDRixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQzthQUN0QjtZQUNELElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDckQsR0FBRyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDekI7aUJBQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQ2hFLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2lCQUN6QjthQUNGO2lCQUFNO2dCQUNMLEdBQUcsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2hDO1lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDekI7YUFBTTtZQUNMLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDcEY7S0FDRjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFBO0FBakNZLFFBQUEsc0JBQXNCLDBCQWlDbEM7QUFFTSxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQVUsRUFBRSxHQUFlLEVBQUUsRUFBRTtJQUM3RCxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLElBQUEsOEJBQXNCLEVBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxJQUFBLGtDQUEwQixFQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDLENBQUE7QUFKWSxRQUFBLGVBQWUsbUJBSTNCO0FBRU0sTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEdBQWUsRUFBRSxFQUFFO0lBQ3pELElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNkLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ2xCLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUN4QixJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDbkM7UUFDRCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDOUIsSUFBSSxJQUFJLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzdDO0tBQ0Y7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQTtBQVhZLFFBQUEsdUJBQXVCLDJCQVduQyJ9