summaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js')
-rw-r--r--tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js
new file mode 100644
index 0000000000..63f20d77bb
--- /dev/null
+++ b/tools/node_modules/eslint/node_modules/inquirer/lib/utils/utils.js
@@ -0,0 +1,26 @@
+'use strict';
+var _ = require('lodash');
+var rx = require('rx-lite-aggregates');
+var runAsync = require('run-async');
+
+/**
+ * Resolve a question property value if it is passed as a function.
+ * This method will overwrite the property on the question object with the received value.
+ * @param {Object} question - Question object
+ * @param {String} prop - Property to fetch name
+ * @param {Object} answers - Answers object
+ * @return {rx.Obsersable} - Observable emitting once value is known
+ */
+
+exports.fetchAsyncQuestionProperty = function (question, prop, answers) {
+ if (!_.isFunction(question[prop])) {
+ return rx.Observable.return(question);
+ }
+
+ return rx.Observable.fromPromise(runAsync(question[prop])(answers)
+ .then(function (value) {
+ question[prop] = value;
+ return question;
+ })
+ );
+};