Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / inquirer / lib / prompts / confirm.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/inquirer/lib/prompts/confirm.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/inquirer/lib/prompts/confirm.js
new file mode 100644 (file)
index 0000000..d502498
--- /dev/null
@@ -0,0 +1,102 @@
+'use strict';
+/**
+ * `confirm` type prompt
+ */
+
+var _ = {
+  extend: require('lodash/extend'),
+  isBoolean: require('lodash/isBoolean'),
+};
+var chalk = require('chalk');
+var { take, takeUntil } = require('rxjs/operators');
+var Base = require('./base');
+var observe = require('../utils/events');
+
+class ConfirmPrompt extends Base {
+  constructor(questions, rl, answers) {
+    super(questions, rl, answers);
+
+    var rawDefault = true;
+
+    _.extend(this.opt, {
+      filter: function (input) {
+        var value = rawDefault;
+        if (input != null && input !== '') {
+          value = /^y(es)?/i.test(input);
+        }
+
+        return value;
+      },
+    });
+
+    if (_.isBoolean(this.opt.default)) {
+      rawDefault = this.opt.default;
+    }
+
+    this.opt.default = rawDefault ? 'Y/n' : 'y/N';
+  }
+
+  /**
+   * Start the Inquiry session
+   * @param  {Function} cb   Callback when prompt is done
+   * @return {this}
+   */
+
+  _run(cb) {
+    this.done = cb;
+
+    // Once user confirm (enter key)
+    var events = observe(this.rl);
+    events.keypress.pipe(takeUntil(events.line)).forEach(this.onKeypress.bind(this));
+
+    events.line.pipe(take(1)).forEach(this.onEnd.bind(this));
+
+    // Init
+    this.render();
+
+    return this;
+  }
+
+  /**
+   * Render the prompt to screen
+   * @return {ConfirmPrompt} self
+   */
+
+  render(answer) {
+    var message = this.getQuestion();
+
+    if (typeof answer === 'boolean') {
+      message += chalk.cyan(answer ? 'Yes' : 'No');
+    } else {
+      message += this.rl.line;
+    }
+
+    this.screen.render(message);
+
+    return this;
+  }
+
+  /**
+   * When user press `enter` key
+   */
+
+  onEnd(input) {
+    this.status = 'answered';
+
+    var output = this.opt.filter(input);
+    this.render(output);
+
+    this.screen.done();
+    this.done(output);
+  }
+
+  /**
+   * When user press a key
+   */
+
+  onKeypress() {
+    this.render();
+  }
+}
+
+module.exports = ConfirmPrompt;