UNPKG

963 BJavaScriptView Raw
1"use strict";
2
3const path = require('path');
4
5const fs = require('fs');
6
7const hooksfiles = ['prompt.js', 'index.js'];
8
9const prompt = (createPrompter, actionfolder, args) => {
10 const hooksfile = hooksfiles.map(f => path.resolve(path.join(actionfolder, f))).find(f => fs.existsSync(f));
11
12 if (!hooksfile) {
13 return Promise.resolve({});
14 } // shortcircuit without prompter
15 // $FlowFixMe
16
17
18 const hooksModule = require(hooksfile);
19
20 if (hooksModule.params) {
21 return hooksModule.params({
22 args
23 });
24 } // lazy loads prompter
25 // everything below requires it
26
27
28 const prompter = createPrompter();
29
30 if (hooksModule.prompt) {
31 return hooksModule.prompt({
32 prompter,
33 inquirer: prompter,
34 args
35 });
36 }
37
38 return prompter.prompt( // prompt _only_ for things we've not seen on the CLI
39 hooksModule.filter(p => args[p.name] === undefined || args[p.name] === null || args[p.name].length === 0));
40};
41
42module.exports = prompt;
\No newline at end of file