{"ast":null,"code":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = 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} // for async generators\n\n\nfunction asyncEachOfLimit(generator, limit, iteratee, callback) {\n  let done = false;\n  let canceled = false;\n  let awaiting = false;\n  let running = 0;\n  let idx = 0;\n\n  function replenish() {\n    //console.log('replenish')\n    if (running >= limit || awaiting || done) return; //console.log('replenish awaiting')\n\n    awaiting = true;\n    generator.next().then(({\n      value,\n      done: iterDone\n    }) => {\n      //console.log('got value', value)\n      if (canceled || done) return;\n      awaiting = false;\n\n      if (iterDone) {\n        done = true;\n\n        if (running <= 0) {\n          //console.log('done nextCb')\n          callback(null);\n        }\n\n        return;\n      }\n\n      running++;\n      iteratee(value, idx, iterateeCallback);\n      idx++;\n      replenish();\n    }).catch(handleError);\n  }\n\n  function iterateeCallback(err, result) {\n    //console.log('iterateeCallback')\n    running -= 1;\n    if (canceled) return;\n    if (err) return handleError(err);\n\n    if (err === false) {\n      done = true;\n      canceled = true;\n      return;\n    }\n\n    if (result === _breakLoop2.default || done && running <= 0) {\n      done = true; //console.log('done iterCb')\n\n      return callback(null);\n    }\n\n    replenish();\n  }\n\n  function handleError(err) {\n    if (canceled) return;\n    awaiting = false;\n    done = true;\n    callback(err);\n  }\n\n  replenish();\n}\n\nmodule.exports = exports['default'];","map":{"version":3,"sources":["D:/Development/Work/CENOS/cenos-ui/node_modules/async/internal/asyncEachOfLimit.js"],"names":["Object","defineProperty","exports","value","default","asyncEachOfLimit","_breakLoop","require","_breakLoop2","_interopRequireDefault","obj","__esModule","generator","limit","iteratee","callback","done","canceled","awaiting","running","idx","replenish","next","then","iterDone","iterateeCallback","catch","handleError","err","result","module"],"mappings":"AAAA;;AAEAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AACzCC,EAAAA,KAAK,EAAE;AADkC,CAA7C;AAGAD,OAAO,CAACE,OAAR,GAAkBC,gBAAlB;;AAEA,IAAIC,UAAU,GAAGC,OAAO,CAAC,aAAD,CAAxB;;AAEA,IAAIC,WAAW,GAAGC,sBAAsB,CAACH,UAAD,CAAxC;;AAEA,SAASG,sBAAT,CAAgCC,GAAhC,EAAqC;AAAE,SAAOA,GAAG,IAAIA,GAAG,CAACC,UAAX,GAAwBD,GAAxB,GAA8B;AAAEN,IAAAA,OAAO,EAAEM;AAAX,GAArC;AAAwD,C,CAE/F;;;AACA,SAASL,gBAAT,CAA0BO,SAA1B,EAAqCC,KAArC,EAA4CC,QAA5C,EAAsDC,QAAtD,EAAgE;AAC5D,MAAIC,IAAI,GAAG,KAAX;AACA,MAAIC,QAAQ,GAAG,KAAf;AACA,MAAIC,QAAQ,GAAG,KAAf;AACA,MAAIC,OAAO,GAAG,CAAd;AACA,MAAIC,GAAG,GAAG,CAAV;;AAEA,WAASC,SAAT,GAAqB;AACjB;AACA,QAAIF,OAAO,IAAIN,KAAX,IAAoBK,QAApB,IAAgCF,IAApC,EAA0C,OAFzB,CAGjB;;AACAE,IAAAA,QAAQ,GAAG,IAAX;AACAN,IAAAA,SAAS,CAACU,IAAV,GAAiBC,IAAjB,CAAsB,CAAC;AAAEpB,MAAAA,KAAF;AAASa,MAAAA,IAAI,EAAEQ;AAAf,KAAD,KAA+B;AACjD;AACA,UAAIP,QAAQ,IAAID,IAAhB,EAAsB;AACtBE,MAAAA,QAAQ,GAAG,KAAX;;AACA,UAAIM,QAAJ,EAAc;AACVR,QAAAA,IAAI,GAAG,IAAP;;AACA,YAAIG,OAAO,IAAI,CAAf,EAAkB;AACd;AACAJ,UAAAA,QAAQ,CAAC,IAAD,CAAR;AACH;;AACD;AACH;;AACDI,MAAAA,OAAO;AACPL,MAAAA,QAAQ,CAACX,KAAD,EAAQiB,GAAR,EAAaK,gBAAb,CAAR;AACAL,MAAAA,GAAG;AACHC,MAAAA,SAAS;AACZ,KAhBD,EAgBGK,KAhBH,CAgBSC,WAhBT;AAiBH;;AAED,WAASF,gBAAT,CAA0BG,GAA1B,EAA+BC,MAA/B,EAAuC;AACnC;AACAV,IAAAA,OAAO,IAAI,CAAX;AACA,QAAIF,QAAJ,EAAc;AACd,QAAIW,GAAJ,EAAS,OAAOD,WAAW,CAACC,GAAD,CAAlB;;AAET,QAAIA,GAAG,KAAK,KAAZ,EAAmB;AACfZ,MAAAA,IAAI,GAAG,IAAP;AACAC,MAAAA,QAAQ,GAAG,IAAX;AACA;AACH;;AAED,QAAIY,MAAM,KAAKrB,WAAW,CAACJ,OAAvB,IAAkCY,IAAI,IAAIG,OAAO,IAAI,CAAzD,EAA4D;AACxDH,MAAAA,IAAI,GAAG,IAAP,CADwD,CAExD;;AACA,aAAOD,QAAQ,CAAC,IAAD,CAAf;AACH;;AACDM,IAAAA,SAAS;AACZ;;AAED,WAASM,WAAT,CAAqBC,GAArB,EAA0B;AACtB,QAAIX,QAAJ,EAAc;AACdC,IAAAA,QAAQ,GAAG,KAAX;AACAF,IAAAA,IAAI,GAAG,IAAP;AACAD,IAAAA,QAAQ,CAACa,GAAD,CAAR;AACH;;AAEDP,EAAAA,SAAS;AACZ;;AACDS,MAAM,CAAC5B,OAAP,GAAiBA,OAAO,CAAC,SAAD,CAAxB","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nexports.default = asyncEachOfLimit;\n\nvar _breakLoop = require('./breakLoop');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// for async generators\nfunction asyncEachOfLimit(generator, limit, iteratee, callback) {\n    let done = false;\n    let canceled = false;\n    let awaiting = false;\n    let running = 0;\n    let idx = 0;\n\n    function replenish() {\n        //console.log('replenish')\n        if (running >= limit || awaiting || done) return;\n        //console.log('replenish awaiting')\n        awaiting = true;\n        generator.next().then(({ value, done: iterDone }) => {\n            //console.log('got value', value)\n            if (canceled || done) return;\n            awaiting = false;\n            if (iterDone) {\n                done = true;\n                if (running <= 0) {\n                    //console.log('done nextCb')\n                    callback(null);\n                }\n                return;\n            }\n            running++;\n            iteratee(value, idx, iterateeCallback);\n            idx++;\n            replenish();\n        }).catch(handleError);\n    }\n\n    function iterateeCallback(err, result) {\n        //console.log('iterateeCallback')\n        running -= 1;\n        if (canceled) return;\n        if (err) return handleError(err);\n\n        if (err === false) {\n            done = true;\n            canceled = true;\n            return;\n        }\n\n        if (result === _breakLoop2.default || done && running <= 0) {\n            done = true;\n            //console.log('done iterCb')\n            return callback(null);\n        }\n        replenish();\n    }\n\n    function handleError(err) {\n        if (canceled) return;\n        awaiting = false;\n        done = true;\n        callback(err);\n    }\n\n    replenish();\n}\nmodule.exports = exports['default'];"]},"metadata":{},"sourceType":"script"}