UNPKG

1.53 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/iif.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,GAAG,CACjB,SAA+D,EAC/D,UAAkC,EAClC,aAAqC,KAAK,EAAE;IAE5C,OAAO,KAAK,CAAU,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AACjG,CAAC","file":"iif.js","sourcesContent":["import { AsyncIterableX } from './asynciterablex';\nimport { defer } from './defer';\nimport { empty } from './empty';\n\n/**\n * If the specified condition evaluates true, select the thenSource sequence.\n * Otherwise, select the elseSource sequence.\n *\n * @export\n * @template TSource The type of the elements in the result sequence.\n * @param {((signal?: AbortSignal) => boolean | Promise<boolean>)} condition Condition evaluated to decide which sequence to return.\n * @param {AsyncIterable<TSource>} thenSource Sequence returned in case evaluates true.\n * @param {AsyncIterable<TSource>} [elseSource=empty()] Sequence returned in case condition evaluates false.\n * @returns {AsyncIterableX<TSource>} thenSource if condition evaluates true; elseSource otherwise.\n */\nexport function iif<TSource>(\n condition: (signal?: AbortSignal) => boolean | Promise<boolean>,\n thenSource: AsyncIterable<TSource>,\n elseSource: AsyncIterable<TSource> = empty()\n): AsyncIterableX<TSource> {\n return defer<TSource>(async (signal) => ((await condition(signal)) ? thenSource : elseSource));\n}\n"]}
\No newline at end of file