UNPKG

1.41 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/max.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUjD,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,MAA0B,EAC1B,WAAiD,aAAa;IAE9D,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC;IACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE;QAC/B,IAAI,CAAC,WAAW,EAAE;YAChB,WAAW,GAAG,IAAI,CAAC;SACpB;QACD,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,KAAK,EAAE;YACb,KAAK,GAAG,CAAC,CAAC;SACX;KACF;IACD,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IAED,OAAO,KAAK,CAAC;AACf,CAAC","file":"max.js","sourcesContent":["import { identityAsync } from '../util/identity';\n\nexport async function max(\n source: AsyncIterable<number>,\n selector?: (x: number) => number | Promise<number>\n): Promise<number>;\nexport async function max<T>(\n source: AsyncIterable<T>,\n selector: (x: T) => number | Promise<number>\n): Promise<number>;\nexport async function max(\n source: AsyncIterable<any>,\n selector: (x: any) => number | Promise<number> = identityAsync\n): Promise<number> {\n let atleastOnce = false;\n let value = -Infinity;\n for await (const item of source) {\n if (!atleastOnce) {\n atleastOnce = true;\n }\n const x = await selector(item);\n if (x > value) {\n value = x;\n }\n }\n if (!atleastOnce) {\n throw new Error('Sequence contains no elements');\n }\n\n return value;\n}\n"]}
\No newline at end of file