widget-angular-fluig
Version:
Esse package vai inicializar um projeto em angular com algumas configurações padrões para deploy como widget no fluig
67 lines (61 loc) • 1.89 kB
JavaScript
import arg from 'arg';
import inquirer from 'inquirer';
import { createAngularProject } from './index.js';
function parseArgumentsIntoOptions(rawArgs) {
const args = arg(
{
'--yes': Boolean,
'-Y': '--yes'
},
{
argv: rawArgs.slice(2)
});
return {
fullInstall: args['--yes'] || false,
}
}
async function promptForMissingOptions(options) {
const questions = [];
const defaultProjectName = 'new-project'
const defaultWidgetName = 'new-widget'
const defaultType = 'full'
if (options.fullInstall) {
return {
...options,
name: options.name || defaultProjectName,
name: options.widgetName || defaultProjectName,
type: options.type || defaultType
}
} else {
questions.push({
type: 'input',
name: 'name',
message: 'Por favor, selecione um nome para o projeto:',
default: defaultProjectName
},
{
type: 'input',
name: 'widgetName',
message: 'Por favor, selecione o nome da widget:',
default: defaultWidgetName
}, {
type: 'list',
name: 'type',
message: 'Por favor, selecione o tipo de criação do projeto:',
choices: ['workspace', 'app', 'nenhum'],
default: defaultType
})
}
const answers = await inquirer.prompt(questions)
return {
...options,
name: options.name || answers.name,
widgetName: options.widgetName || answers.widgetName,
type: options.type || answers.type
}
}
export async function cli(args) {
let options = parseArgumentsIntoOptions(args);
options = await promptForMissingOptions(options);
await createAngularProject(options);
}