This is a small and incoherent collection of RxJS operators we commonly use across our projects.
npm add @zeit-dev/rxjs-utilor
yarn add @zeit-dev/rxjs-utilCombine several boolean observables, and return true if
all latest values are true, false otherwise.
allTrue(of(false), of(true)).subscribe((x) => console.log(x))
// => falseThis is basically just filter(x => !!x) with the
added benefit of collapsing an input type of T | undefined to just T
of(true, false, '', 0, null, undefined, true, 'a', 1).pipe(filterTruthy()).subscribe((x) => console.log(x));
// => true, true, 'a', 1Just a shortcut for map(x => !x)
of(true).pipe(flip()).subscribe((x) => console.log(x));
// => falseThis is a debug tool, that taps into the observable stream,
and uses console.log to output each event, and console.error for
errors. To identify the log output, you can specify a log category/tag:
interval(1000).pipe(log('Here')).subscribe()
// => Here 1, Here 2, Here 3Casts observable to Observable<void>.
Replays the last value every n miliseconds until the next value arrives. Stops replaying when predicate evaluates to false.
Helper to return to the Angular zone (NgZone), when an event arrives.
Useful if you have external async sources.
// inject ngZone: NgZone
from(someExternalPromise).pipe(returnToZone(ngZone))SwitchMap to an inner observable and carry the current value into the output.
Same as
switchMap((x) => innerObservable.pipe(map((y) => [x, y])))Same as takeWhile but emits the last event as well.