UNPKG

glass-app-manager

Version:

Informatica's Glass Framework CLI for bootstrapping

62 lines (52 loc) 1.67 kB
"use strict"; const path = require("path"); const fs = require("fs"); const inquirer = require("inquirer"); const validateNpmName = require("validate-npm-package-name"); const config = require("./config"); module.exports = async (opts) => { if (opts.name && !validateNpmName(opts.name).validForNewPackages) { throw new Error(`invalid package name "${opts.name}"`); } if (opts.skipPrompts) { if (!opts.name) { throw new Error( "invalid input; you must pass a package name with --skip-prompts" ); } Object.keys(opts).forEach(key => { const value = opts[key]; if (typeof value === "function") { opts[key] = value(opts); } }); return opts; } else { const info = await inquirer.prompt([ { type: 'input', name: 'name', message: 'Package Name', validate: (name) => { return name && validateNpmName(name).validForNewPackages }, default: opts.name }, { type: 'input', name: 'description', message: 'Package Description', default: opts.description } ]); info.templatePath = "../../target"; info.samplePath = "../../sample"; info.template = opts.template; info.manager = opts.manager; config.set("manager", info.manager); config.set("template", info.template); return { ...info }; } };