UNPKG

@bemedev/rx-add-ons

Version:

A collection of RxJS operators and utilities to enhance reactive programming capabilities.

1 lines 1.15 kB
{"version":3,"file":"tap.cjs","sources":["../src/tap.ts"],"sourcesContent":["import { type Observable } from 'rxjs';\nimport { tap } from 'rxjs/internal/operators/tap';\nimport type { Fn, Predicate } from './types';\n\nexport function tapWhile<T>(\n predicate: Predicate<T>,\n sideEffect: Fn<T, void>,\n) {\n return (source: Observable<T>) => {\n const all: T[] = [];\n let index = 0;\n\n return source.pipe(\n tap(value => {\n all.push(value);\n }),\n tap(value => {\n const check = predicate(value, index, all);\n if (check) sideEffect(value, index, all);\n index++;\n }),\n );\n };\n}\n"],"names":["tap"],"mappings":";;;;AAIM,SAAU,QAAQ,CACtB,SAAuB,EACvB,UAAuB,EAAA;IAEvB,OAAO,CAAC,MAAqB,KAAI;QAC/B,MAAM,GAAG,GAAQ,EAAE;QACnB,IAAI,KAAK,GAAG,CAAC;QAEb,OAAO,MAAM,CAAC,IAAI,CAChBA,OAAG,CAAC,KAAK,IAAG;AACV,YAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACjB,QAAA,CAAC,CAAC,EACFA,OAAG,CAAC,KAAK,IAAG;YACV,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC;AAC1C,YAAA,IAAI,KAAK;AAAE,gBAAA,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC;AACxC,YAAA,KAAK,EAAE;QACT,CAAC,CAAC,CACH;AACH,IAAA,CAAC;AACH;;;;"}