UNPKG

1.26 kBJavaScriptView Raw
1/**
2 * Init command action
3 */
4
5const confirmDestination = require('./confirm')
6const resolveTemplate = require('./resolve')
7const loadTemplate = require('./load')
8const promptQuestions = require('./prompt')
9const generateFiles = require('./generate')
10const completeExecute = require('./complete')
11
12/**
13 * Generate a new project from a template
14 * @param {String} template template name or uri
15 * @param {String} project project destination
16 * @param {Object} options options
17 * @param {Boolean} options.force overwrite target directory if it exists
18 * @param {Boolean} options.offline use cached template
19 * @param {Boolean} options.save save answers
20 */
21module.exports = async (template, project = '.', { force, offline, save } = {}) => {
22 const dest = await confirmDestination(project, force)
23 const src = await resolveTemplate(template, offline)
24 const options = await loadTemplate(src)
25 const answers = await promptQuestions(options.prompts, dest, save)
26 const files = await generateFiles(src, dest, answers, options)
27
28 // remove to template plugin or complete
29 // // run `git init` in destination
30 // await util.execute('git init', dest)
31
32 completeExecute(options.complete, { dest, src, options, answers, files })
33}