@cuba-platform/front-generator
Version:
CUBA Platform front-end clients generator
70 lines • 2.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.componentOptionsConfig = exports.polymerElementOptionsConfig = exports.commonGenerationOptionsConfig = exports.pickOptions = exports.extractAvailableOptions = void 0;
function extractAvailableOptions(optionsConfig) {
if (!optionsConfig) {
return [];
}
const result = [];
Object.keys(optionsConfig).forEach(optionFullName => {
const { type, alias, description } = optionsConfig[optionFullName];
if (alias) {
const pattern = `-${alias}, --${optionFullName}${type === String ? ` [${optionFullName}]` : ''}`;
description ? result.push({ pattern, description }) : result.push({ pattern });
}
});
return result;
}
exports.extractAvailableOptions = extractAvailableOptions;
function pickOptions(cmd, availableOptions) {
const passedOptions = {};
if (availableOptions) {
Object.keys(availableOptions).forEach(optionFullName => {
if (cmd.hasOwnProperty(optionFullName)) {
passedOptions[optionFullName] = cmd[optionFullName];
}
});
}
return passedOptions;
}
exports.pickOptions = pickOptions;
/**
* @alpha
*/
exports.commonGenerationOptionsConfig = {
dest: {
alias: 'd',
description: 'destination directory',
type: String
},
model: {
alias: 'm',
description: 'specify path to project model, if given no interactive prompt will be invoked',
type: String
},
verbose: {
alias: 'b',
description: 'log out additional info about generation process',
type: Boolean
}
};
exports.polymerElementOptionsConfig = Object.assign(Object.assign({}, exports.commonGenerationOptionsConfig), { dirShift: {
alias: 's',
description: 'directory shift for html imports e.g ../../',
type: String
}, answers: {
alias: 'a',
description: 'fulfilled params for generator to avoid interactive input in serialized JSON string',
type: String
} });
// Same as polymerElementOptionsConfig but with a neutral name. To be used in non-Polymer generators.
exports.componentOptionsConfig = Object.assign(Object.assign({}, exports.commonGenerationOptionsConfig), { dirShift: {
alias: 's',
description: 'directory shift for html imports e.g ../../',
type: String
}, answers: {
alias: 'a',
description: 'fulfilled params for generator to avoid interactive input in serialized JSON string',
type: String
} });
//# sourceMappingURL=cli-options.js.map