UNPKG

1.91 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.createPromptConfirmLoader = createPromptConfirmLoader;
7exports.promptInput = exports.limit = void 0;
8
9var _inquirer = _interopRequireDefault(require("inquirer"));
10
11var _pLimit = _interopRequireDefault(require("p-limit"));
12
13var _dataloader = _interopRequireDefault(require("dataloader"));
14
15var _chalk = _interopRequireDefault(require("chalk"));
16
17function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19let limit = (0, _pLimit.default)(1); // there might be a simpler solution to this than using dataloader but it works so ¯\_(ツ)_/¯
20
21exports.limit = limit;
22let prefix = `🎁 ${_chalk.default.green("?")}`;
23
24function createPromptConfirmLoader(message) {
25 let loader = new _dataloader.default(pkgs => limit(() => (async () => {
26 if (pkgs.length === 1) {
27 let {
28 confirm
29 } = await _inquirer.default.prompt([{
30 type: "confirm",
31 name: "confirm",
32 message,
33 prefix: prefix + " " + pkgs[0].name
34 }]);
35 return [confirm];
36 }
37
38 let {
39 answers
40 } = await _inquirer.default.prompt([{
41 type: "checkbox",
42 name: "answers",
43 message,
44 choices: pkgs.map(pkg => ({
45 name: pkg.name,
46 checked: true
47 })),
48 prefix
49 }]);
50 return pkgs.map(pkg => {
51 return answers.includes(pkg.name);
52 });
53 })(), {
54 cache: false
55 }));
56 return pkg => loader.load(pkg);
57}
58
59let doPromptInput = async (message, pkg, defaultAnswer) => {
60 let {
61 input
62 } = await _inquirer.default.prompt([{
63 type: "input",
64 name: "input",
65 message,
66 prefix: prefix + " " + pkg.name,
67 default: defaultAnswer
68 }]);
69 return input;
70};
71
72let promptInput = (message, pkg, defaultAnswer) => limit(() => doPromptInput(message, pkg, defaultAnswer));
73
74exports.promptInput = promptInput;
\No newline at end of file