fc0f401d847ba80953daf876435e05199c101ccc
[yaffs-website] / node_modules / uncss / node_modules / form-data / node_modules / async / reflectAll.js
1 'use strict';
2
3 Object.defineProperty(exports, "__esModule", {
4     value: true
5 });
6 exports.default = reflectAll;
7
8 var _reflect = require('./reflect');
9
10 var _reflect2 = _interopRequireDefault(_reflect);
11
12 var _isArray = require('lodash/isArray');
13
14 var _isArray2 = _interopRequireDefault(_isArray);
15
16 var _arrayMap2 = require('lodash/_arrayMap');
17
18 var _arrayMap3 = _interopRequireDefault(_arrayMap2);
19
20 var _baseForOwn = require('lodash/_baseForOwn');
21
22 var _baseForOwn2 = _interopRequireDefault(_baseForOwn);
23
24 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
26 /**
27  * A helper function that wraps an array or an object of functions with reflect.
28  *
29  * @name reflectAll
30  * @static
31  * @memberOf module:Utils
32  * @method
33  * @see [async.reflect]{@link module:Utils.reflect}
34  * @category Util
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
37  * `async.reflect`
38  * @example
39  *
40  * let tasks = [
41  *     function(callback) {
42  *         setTimeout(function() {
43  *             callback(null, 'one');
44  *         }, 200);
45  *     },
46  *     function(callback) {
47  *         // do some more stuff but error ...
48  *         callback(new Error('bad stuff happened'));
49  *     },
50  *     function(callback) {
51  *         setTimeout(function() {
52  *             callback(null, 'two');
53  *         }, 100);
54  *     }
55  * ];
56  *
57  * async.parallel(async.reflectAll(tasks),
58  * // optional callback
59  * function(err, results) {
60  *     // values
61  *     // results[0].value = 'one'
62  *     // results[1].error = Error('bad stuff happened')
63  *     // results[2].value = 'two'
64  * });
65  *
66  * // an example using an object instead of an array
67  * let tasks = {
68  *     one: function(callback) {
69  *         setTimeout(function() {
70  *             callback(null, 'one');
71  *         }, 200);
72  *     },
73  *     two: function(callback) {
74  *         callback('two');
75  *     },
76  *     three: function(callback) {
77  *         setTimeout(function() {
78  *             callback(null, 'three');
79  *         }, 100);
80  *     }
81  * };
82  *
83  * async.parallel(async.reflectAll(tasks),
84  * // optional callback
85  * function(err, results) {
86  *     // values
87  *     // results.one.value = 'one'
88  *     // results.two.error = 'two'
89  *     // results.three.value = 'three'
90  * });
91  */
92 function reflectAll(tasks) {
93     var results;
94     if ((0, _isArray2.default)(tasks)) {
95         results = (0, _arrayMap3.default)(tasks, _reflect2.default);
96     } else {
97         results = {};
98         (0, _baseForOwn2.default)(tasks, function (task, key) {
99             results[key] = _reflect2.default.call(this, task);
100         });
101     }
102     return results;
103 }
104 module.exports = exports['default'];