3 Object.defineProperty(exports, "__esModule", {
6 exports.default = reflectAll;
8 var _reflect = require('./reflect');
10 var _reflect2 = _interopRequireDefault(_reflect);
12 var _isArray = require('lodash/isArray');
14 var _isArray2 = _interopRequireDefault(_isArray);
16 var _arrayMap2 = require('lodash/_arrayMap');
18 var _arrayMap3 = _interopRequireDefault(_arrayMap2);
20 var _baseForOwn = require('lodash/_baseForOwn');
22 var _baseForOwn2 = _interopRequireDefault(_baseForOwn);
24 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27 * A helper function that wraps an array or an object of functions with reflect.
31 * @memberOf module:Utils
33 * @see [async.reflect]{@link module:Utils.reflect}
35 * @param {Array} tasks - The array of functions to wrap in `async.reflect`.
36 * @returns {Array} Returns an array of functions, each function wrapped in
41 * function(callback) {
42 * setTimeout(function() {
43 * callback(null, 'one');
46 * function(callback) {
47 * // do some more stuff but error ...
48 * callback(new Error('bad stuff happened'));
50 * function(callback) {
51 * setTimeout(function() {
52 * callback(null, 'two');
57 * async.parallel(async.reflectAll(tasks),
58 * // optional callback
59 * function(err, results) {
61 * // results[0].value = 'one'
62 * // results[1].error = Error('bad stuff happened')
63 * // results[2].value = 'two'
66 * // an example using an object instead of an array
68 * one: function(callback) {
69 * setTimeout(function() {
70 * callback(null, 'one');
73 * two: function(callback) {
76 * three: function(callback) {
77 * setTimeout(function() {
78 * callback(null, 'three');
83 * async.parallel(async.reflectAll(tasks),
84 * // optional callback
85 * function(err, results) {
87 * // results.one.value = 'one'
88 * // results.two.error = 'two'
89 * // results.three.value = 'three'
92 function reflectAll(tasks) {
94 if ((0, _isArray2.default)(tasks)) {
95 results = (0, _arrayMap3.default)(tasks, _reflect2.default);
98 (0, _baseForOwn2.default)(tasks, function (task, key) {
99 results[key] = _reflect2.default.call(this, task);
104 module.exports = exports['default'];