aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js
diff options
context:
space:
mode:
authorNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
committerNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
commit291803c31f829fe0d32bb3207bc11def95a7408c (patch)
treec7d43107d79291b19d8c9eceefbe91c9f9a52acf /sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js
parent1fa69862057db4db53cfda5be9c24b4228ef63f7 (diff)
Urađena test aplikacija. Povezan front i back.
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js102
1 files changed, 102 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js
new file mode 100644
index 00000000..8171aab5
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/inquirer/lib/prompts/confirm.js
@@ -0,0 +1,102 @@
+'use strict';
+/**
+ * `confirm` type prompt
+ */
+
+const _ = {
+ extend: require('lodash/extend'),
+ isBoolean: require('lodash/isBoolean'),
+};
+const chalk = require('chalk');
+const { take, takeUntil } = require('rxjs/operators');
+const Base = require('./base');
+const observe = require('../utils/events');
+
+class ConfirmPrompt extends Base {
+ constructor(questions, rl, answers) {
+ super(questions, rl, answers);
+
+ let rawDefault = true;
+
+ _.extend(this.opt, {
+ filter(input) {
+ let 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)
+ const 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) {
+ let 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';
+
+ const 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;