summaryrefslogtreecommitdiff
path: root/build/eachOf.js
diff options
context:
space:
mode:
author--global <alexander.early@gmail.com>2016-01-15 17:59:41 -0800
committer--global <alexander.early@gmail.com>2016-01-15 17:59:41 -0800
commitaf0a2edfab9ded3f32165c6cfac0389b852a2071 (patch)
tree71b24da7bcf737c1bf973466de77770cba219bd5 /build/eachOf.js
parentf984553b9d5a2d4600b599ec6746c459707c7338 (diff)
downloadasync-af0a2edfab9ded3f32165c6cfac0389b852a2071.tar.gz
rename build files, add smoke test for build
Diffstat (limited to 'build/eachOf.js')
-rw-r--r--build/eachOf.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/build/eachOf.js b/build/eachOf.js
new file mode 100644
index 0000000..31214fa
--- /dev/null
+++ b/build/eachOf.js
@@ -0,0 +1,53 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = eachOf;
+
+var _once = require('lodash/once');
+
+var _once2 = _interopRequireDefault(_once);
+
+var _noop = require('lodash/noop');
+
+var _noop2 = _interopRequireDefault(_noop);
+
+var _keyIterator = require('./internal/keyIterator');
+
+var _keyIterator2 = _interopRequireDefault(_keyIterator);
+
+var _onlyOnce = require('./internal/onlyOnce');
+
+var _onlyOnce2 = _interopRequireDefault(_onlyOnce);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function eachOf(object, iterator, callback) {
+ callback = (0, _once2.default)(callback || _noop2.default);
+ object = object || [];
+
+ var iter = (0, _keyIterator2.default)(object);
+ var key,
+ completed = 0;
+
+ while ((key = iter()) != null) {
+ completed += 1;
+ iterator(object[key], key, (0, _onlyOnce2.default)(done));
+ }
+
+ if (completed === 0) callback(null);
+
+ function done(err) {
+ completed--;
+ if (err) {
+ callback(err);
+ }
+ // Check key is null in case iterator isn't exhausted
+ // and done resolved synchronously.
+ else if (key === null && completed <= 0) {
+ callback(null);
+ }
+ }
+}
+module.exports = exports['default']; \ No newline at end of file