diff options
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.js | 26 |
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; + }) + ); +}; |