{"version":3,"sources":["asynciterable/min.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,QAAQ,CAAC;IACrB,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":"min.js","sourcesContent":["import { identityAsync } from '../util/identity';\n\nexport async function min(\n  source: AsyncIterable<number>,\n  selector?: (x: number) => number | Promise<number>\n): Promise<number>;\nexport async function min<T>(\n  source: AsyncIterable<T>,\n  selector: (x: T) => number | Promise<number>\n): Promise<number>;\nexport async function min(\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"]}