UNPKG

yz-cli

Version:

yazuo web project scaffold

32 lines (29 loc) 835 B
/* * @Author: lmr * @Date: 2017-09-18 13:28:07 * @Last Modified by: lmr * @Last Modified time: 2017-09-20 17:29:30 */ const async = require('async') const inquirer = require('inquirer') /** * 遍历所有交互,逐条处理,返回结果 */ module.exports = function (prompts, data, done) { async.eachSeries(Object.keys(prompts), (key, next) => prompt(data, key, prompts[key], next), done) } function prompt (data, name, prompt, done) { inquirer .prompt([ Object.assign({}, prompt, { name: name, default: typeof prompt.default === 'function' ? () => prompt.default.bind(this)(data) : prompt.default, validate: prompt.validate || (() => true) }) ]) .then(args => { data[name] = args[name] done() }) } exports.prompt = prompt