1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.addInteractionListener = addInteractionListener;
|
7 | exports.pauseInteractions = pauseInteractions;
|
8 | exports.prompt = prompt;
|
9 | exports.resumeInteractions = resumeInteractions;
|
10 | function _prompts() {
|
11 | const data = _interopRequireDefault(require("prompts"));
|
12 | _prompts = function () {
|
13 | return data;
|
14 | };
|
15 | return data;
|
16 | }
|
17 | var _errors = require("./errors");
|
18 | var _logger = _interopRequireDefault(require("./logger"));
|
19 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
20 |
|
21 | const listeners = [];
|
22 | async function prompt(question, options = {}) {
|
23 | pauseInteractions();
|
24 | try {
|
25 | const results = await (0, _prompts().default)(question, {
|
26 | onCancel() {
|
27 | throw new _errors.CLIError('Prompt cancelled.');
|
28 | },
|
29 | ...options
|
30 | });
|
31 | return results;
|
32 | } finally {
|
33 | resumeInteractions();
|
34 | }
|
35 | }
|
36 | function pauseInteractions(options = {}) {
|
37 | _logger.default.debug('Interaction observers paused');
|
38 | for (const listener of listeners) {
|
39 | listener({
|
40 | pause: true,
|
41 | ...options
|
42 | });
|
43 | }
|
44 | }
|
45 |
|
46 |
|
47 | function resumeInteractions(options = {}) {
|
48 | _logger.default.debug('Interaction observers resumed');
|
49 | for (const listener of listeners) {
|
50 | listener({
|
51 | pause: false,
|
52 | ...options
|
53 | });
|
54 | }
|
55 | }
|
56 |
|
57 |
|
58 | function addInteractionListener(callback) {
|
59 | listeners.push(callback);
|
60 | }
|
61 |
|
62 |
|
\ | No newline at end of file |