{"version":3,"file":"async.mjs","sources":["../src/async.ts"],"sourcesContent":["import pMap from 'p-map';\nimport { curry } from 'lodash/fp';\n\ntype AnyFunc = (...args: TA) => TR;\n\ntype MakeProm = Promise ? I : T>;\n\ntype PipedFunc =\n PipeReturn extends never ? never : (...args: Parameters) => PipeReturn;\n\ntype PipeReturn = MakeProm>;\n\nexport function pipe(...fns: PipeReturn extends never ? never : T) {\n const [firstFn, ...fnRest] = fns;\n\n return (async (...args: any[]) => {\n let res = await firstFn.apply(firstFn, args);\n\n for (let i = 0; i < fnRest.length; i += 1) {\n res = await fnRest[i](res);\n }\n\n return res;\n }) as PipedFunc;\n}\n\nexport const map = curry(pMap);\n\nexport const reduce =\n (mixedArray: any[]) =>\n async (iteratee: AnyFunc, initialValue?: T) => {\n let acc = initialValue;\n for (let i = 0; i < mixedArray.length; i += 1) {\n acc = await iteratee(acc, await mixedArray[i], i);\n }\n return acc;\n };\n"],"names":["pipe","fns","firstFn","fnRest","args","res","apply","i","length","map","curry","pMap","reduce","mixedArray","iteratee","initialValue","acc"],"mappings":";;;AAYO,SAASA,IAA0B,CAAA,GAAGC,GAA4C,EAAA;AACvF,IAAA,MAAM,CAACC,OAAAA,EAAS,GAAGC,MAAAA,CAAO,GAAGF,GAAAA;AAE7B,IAAA,OAAQ,OAAO,GAAGG,IAAAA,GAAAA;AAChB,QAAA,IAAIC,GAAM,GAAA,MAAMH,OAAQI,CAAAA,KAAK,CAACJ,OAASE,EAAAA,IAAAA,CAAAA;QAEvC,IAAK,IAAIG,IAAI,CAAGA,EAAAA,CAAAA,GAAIJ,OAAOK,MAAM,EAAED,KAAK,CAAG,CAAA;AACzCF,YAAAA,GAAAA,GAAM,MAAMF,MAAM,CAACI,CAAAA,CAAE,CAACF,GAAAA,CAAAA;AACxB;QAEA,OAAOA,GAAAA;AACT,KAAA;AACF;AAEO,MAAMI,GAAMC,GAAAA,KAAAA,CAAMC,IAAM;AAElBC,MAAAA,MAAAA,GACX,CAACC,UAAAA,GACD,OAAUC,QAAmBC,EAAAA,YAAAA,GAAAA;AAC3B,QAAA,IAAIC,GAAMD,GAAAA,YAAAA;QACV,IAAK,IAAIR,IAAI,CAAGA,EAAAA,CAAAA,GAAIM,WAAWL,MAAM,EAAED,KAAK,CAAG,CAAA;AAC7CS,YAAAA,GAAAA,GAAM,MAAMF,QAASE,CAAAA,GAAAA,EAAK,MAAMH,UAAU,CAACN,EAAE,EAAEA,CAAAA,CAAAA;AACjD;QACA,OAAOS,GAAAA;;;;;"}