{"ast":null,"code":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _once = require('./once');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _iterator = require('./iterator');\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _onlyOnce = require('./onlyOnce');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./wrapAsync');\n\nvar _asyncEachOfLimit = require('./asyncEachOfLimit');\n\nvar _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit);\n\nvar _breakLoop = require('./breakLoop');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\n\nexports.default = limit => {\n  return (obj, iteratee, callback) => {\n    callback = (0, _once2.default)(callback);\n\n    if (limit <= 0) {\n      throw new RangeError('concurrency limit cannot be less than 1');\n    }\n\n    if (!obj) {\n      return callback(null);\n    }\n\n    if ((0, _wrapAsync.isAsyncGenerator)(obj)) {\n      return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback);\n    }\n\n    if ((0, _wrapAsync.isAsyncIterable)(obj)) {\n      return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback);\n    }\n\n    var nextElem = (0, _iterator2.default)(obj);\n    var done = false;\n    var canceled = false;\n    var running = 0;\n    var looping = false;\n\n    function iterateeCallback(err, value) {\n      if (canceled) return;\n      running -= 1;\n\n      if (err) {\n        done = true;\n        callback(err);\n      } else if (err === false) {\n        done = true;\n        canceled = true;\n      } else if (value === _breakLoop2.default || done && running <= 0) {\n        done = true;\n        return callback(null);\n      } else if (!looping) {\n        replenish();\n      }\n    }\n\n    function replenish() {\n      looping = true;\n\n      while (running < limit && !done) {\n        var elem = nextElem();\n\n        if (elem === null) {\n          done = true;\n\n          if (running <= 0) {\n            callback(null);\n          }\n\n          return;\n        }\n\n        running += 1;\n        iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));\n      }\n\n      looping = false;\n    }\n\n    replenish();\n  };\n};\n\nmodule.exports = exports['default'];","map":{"version":3,"sources":["D:/Development/Work/CENOS/cenos-ui/node_modules/async/internal/eachOfLimit.js"],"names":["Object","defineProperty","exports","value","_once","require","_once2","_interopRequireDefault","_iterator","_iterator2","_onlyOnce","_onlyOnce2","_wrapAsync","_asyncEachOfLimit","_asyncEachOfLimit2","_breakLoop","_breakLoop2","obj","__esModule","default","limit","iteratee","callback","RangeError","isAsyncGenerator","isAsyncIterable","Symbol","asyncIterator","nextElem","done","canceled","running","looping","iterateeCallback","err","replenish","elem","key","module"],"mappings":"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","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\n\nvar _once = require('./once');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _iterator = require('./iterator');\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _onlyOnce = require('./onlyOnce');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./wrapAsync');\n\nvar _asyncEachOfLimit = require('./asyncEachOfLimit');\n\nvar _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit);\n\nvar _breakLoop = require('./breakLoop');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = limit => {\n    return (obj, iteratee, callback) => {\n        callback = (0, _once2.default)(callback);\n        if (limit <= 0) {\n            throw new RangeError('concurrency limit cannot be less than 1');\n        }\n        if (!obj) {\n            return callback(null);\n        }\n        if ((0, _wrapAsync.isAsyncGenerator)(obj)) {\n            return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback);\n        }\n        if ((0, _wrapAsync.isAsyncIterable)(obj)) {\n            return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback);\n        }\n        var nextElem = (0, _iterator2.default)(obj);\n        var done = false;\n        var canceled = false;\n        var running = 0;\n        var looping = false;\n\n        function iterateeCallback(err, value) {\n            if (canceled) return;\n            running -= 1;\n            if (err) {\n                done = true;\n                callback(err);\n            } else if (err === false) {\n                done = true;\n                canceled = true;\n            } else if (value === _breakLoop2.default || done && running <= 0) {\n                done = true;\n                return callback(null);\n            } else if (!looping) {\n                replenish();\n            }\n        }\n\n        function replenish() {\n            looping = true;\n            while (running < limit && !done) {\n                var elem = nextElem();\n                if (elem === null) {\n                    done = true;\n                    if (running <= 0) {\n                        callback(null);\n                    }\n                    return;\n                }\n                running += 1;\n                iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));\n            }\n            looping = false;\n        }\n\n        replenish();\n    };\n};\n\nmodule.exports = exports['default'];"]},"metadata":{},"sourceType":"script"}