UNPKG

1.36 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/average.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAUrD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAmE,EACnE,WAAiD,aAAa;IAE9D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,EAAE,IAAI,IAAI,IAAI,MAAM,EAAE;QAC7B,GAAG,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,EAAE,CAAC;KACT;IAED,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACrC;IAED,OAAO,GAAG,GAAG,KAAK,CAAC;AACrB,CAAC","file":"average.js","sourcesContent":["import { identityAsync } from '../internal/identity';\n\nexport async function average(\n source: Iterable<number | PromiseLike<number>> | AsyncIterable<number>,\n selector?: (x: number) => number | Promise<number>\n): Promise<number>;\nexport async function average<TSource>(\n source: Iterable<TSource | PromiseLike<TSource>> | AsyncIterable<TSource>,\n selector?: (x: TSource) => number | Promise<number>\n): Promise<number>;\nexport async function average(\n source: Iterable<number | PromiseLike<number>> | AsyncIterable<any>,\n selector: (x: any) => number | Promise<number> = identityAsync\n): Promise<number> {\n let sum = 0;\n let count = 0;\n for await (let item of source) {\n sum += await selector(item);\n count++;\n }\n\n if (count === 0) {\n throw new Error('Empty collection');\n }\n\n return sum / count;\n}\n"]}
\No newline at end of file