{"version":3,"sources":["../p-all-limit.ts"],"sourcesContent":["export const promiseAllLimit = <T>(\n  array: any[],\n  iterator: (item: any) => Promise<T>,\n  limit: number\n): Promise<T[]> => {\n  let inFlight = 0\n\n  return new Promise((resolve, reject) => {\n    let results = [] as T[]\n    let itemIndex = -1\n    const next = () => {\n\n\n      if (array.length === 0 && inFlight === 0) {\n        return resolve(results)\n      }\n\n      while (inFlight < limit && array.length > 0) {\n        inFlight++\n        const nextItem = array.shift() as T\n        itemIndex += 1\n        const currentIndexForThisClosure = itemIndex\n        iterator(nextItem)\n          .then((singleResult) => {\n            results[currentIndexForThisClosure] = singleResult\n            inFlight--\n            next()\n          })\n          .catch((error) => {\n            reject(error)\n          })\n      }\n    }\n\n    next()\n  })\n}\n"],"mappings":";AAAO,IAAM,kBAAkB,CAC7B,OACA,UACA,UACiB;AACjB,MAAI,WAAW;AAEf,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI,UAAU,CAAC;AACf,QAAI,YAAY;AAChB,UAAM,OAAO,MAAM;AAGjB,UAAI,MAAM,WAAW,KAAK,aAAa,GAAG;AACxC,eAAO,QAAQ,OAAO;AAAA,MACxB;AAEA,aAAO,WAAW,SAAS,MAAM,SAAS,GAAG;AAC3C;AACA,cAAM,WAAW,MAAM,MAAM;AAC7B,qBAAa;AACb,cAAM,6BAA6B;AACnC,iBAAS,QAAQ,EACd,KAAK,CAAC,iBAAiB;AACtB,kBAAQ,8BAA8B;AACtC;AACA,eAAK;AAAA,QACP,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,iBAAO,KAAK;AAAA,QACd,CAAC;AAAA,MACL;AAAA,IACF;AAEA,SAAK;AAAA,EACP,CAAC;AACH;","names":[]}