1.0.0 • Published 2 years ago
@rxjsx/rxjsx v1.0.0
RxJS Extensions
RxJS operators to deal with arrays, tuples, and dragging the original values along while adding more values to the pipeline.
:hammer_and_wrench: Install
npm install --save @rxjsx/rxjsx rxjs
:technologist: Demo
import { of } from 'rxjs';
import { flatListMap } from '@rxjsx/rxjsx';
of([1, 2, 3], [4], [5, 6])
.pipe(flatListMap(x => of(x, 10+x)))
.subscribe(console.log);
You can experiment with the above code by forking this ReplIt repo or through this Medium article.
:open_book: Examples
// instead of this
of([1, 2, 3]).pipe(map(l => l.map(e => e * 2))
// you can do this
of([1, 2, 3]).pipe(listMap(e => e * 2)) // [2, 4, 6]
// instead of this
let device;
deviceService.getDevice(id)
.pipe(tap(_device => device = _device))
.pipe(flatMap(_device => userService.getUser(device.owner)))
.pipe(map(_user => userService.unassignDevice(_user, _device)))
// you can do this
deviceService.getDevice(id)
.pipe(flatZipMap(device => userService.getUser(device.owner)))
.pipe(map(([device, user]) => userService.unassignDevice(user, device)))
:notebook: Manual
The available operators so far are the following:
Operator | Description |
---|---|
flatMap / mergeMap | RxJS's mergeMap alias |
zipMap | To zip the transformed value with the original value |
flatZipMap / mergeZipMap | Similar to zipMap, but to be used when a transformation returns an observable |
projectToFormer | To project an observable of pairs, to get the first coordinate |
projectToLatter | To project an observable of pairs, to get the second coordinate |
projectTo | To project an observable of tuples |
mapFormer | To transform the first coordinate of an observable of pairs |
mapLatter | To transform the second coordinate of an observable of pairs |
flatMapFormer / mergeMapFormer | Similar to mapFormer, but to work on stream-returning transformations |
flatMapLatter / mergeMapLatter | Similar to mapLatter, but to work on stream-returning transformations |
listMap | To transform an observable of list, with a mapping on the list elements |
flatListMap / mergeListMap | To transform an observable of list, with a stream-returning member transformation |
listFlatMap | To transform an observable of list, with a list-returning member transformation |
flatListFlatMap / mergeListFlatMap | To transform an observable of list, with a list-observable-returning transformation |
:muscle: Thanks to all Contributors
:books: Related Literature
:keyboard: Contributing
:pray: Support
This project needs your support. Don't forget to leave a :star: behind.