{"version":3,"sources":["asynciterable/sum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUjD,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,MAA0C,EAC1C,WAAiD,aAAa;IAE9D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE;QAC/B,KAAK,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC/B;IAED,OAAO,KAAK,CAAC;AACf,CAAC","file":"sum.js","sourcesContent":["import { identityAsync } from '../util/identity';\n\nexport async function sum(\n  source: AsyncIterable<number> | Iterable<number>,\n  selector?: (x: number) => number | Promise<number>\n): Promise<number>;\nexport async function sum<T>(\n  source: AsyncIterable<T> | Iterable<T>,\n  selector: (x: T) => number | Promise<number>\n): Promise<number>;\nexport async function sum(\n  source: AsyncIterable<any> | Iterable<any>,\n  selector: (x: any) => number | Promise<number> = identityAsync\n): Promise<number> {\n  let value = 0;\n  for await (const item of source) {\n    value += await selector(item);\n  }\n\n  return value;\n}\n"]}