https://github.com/offirmo/rx-auto
EXPERIMENTAL intelligently combines and resolve a set of generic streams (Rx.observable, promises, static values) in "async.auto" style
https://github.com/offirmo/rx-auto
Last synced: over 1 year ago
JSON representation
EXPERIMENTAL intelligently combines and resolve a set of generic streams (Rx.observable, promises, static values) in "async.auto" style
- Host: GitHub
- URL: https://github.com/offirmo/rx-auto
- Owner: Offirmo
- License: unlicense
- Created: 2017-01-25T11:34:52.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-06-07T08:56:38.000Z (about 9 years ago)
- Last Synced: 2025-03-16T03:16:59.697Z (over 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 99.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# rx-auto
intelligently combines a set of generic streams (Rx.observable, promises, static values)
in "async.auto" style !
IN PROGRESS ! API is being refined on a real project.
## The story
Since attending a great talk on reactive programming at [dotJS Paris 2015](http://2015.dotjs.io/) (oh man time flies…),
I investigated in this kind of architecture.
However, manually instantiating and wiring together a set of related streams
soon proved cumbersome, requiring a lot of boilerplate code.
Remembering the very convenient [async.auto](http://caolan.github.io/async/docs.html#auto) interface to coordinate a set of async tasks,
I set of on an open-source journey to offer this great convenience to a RX-based system.
## Usage
(fluency with [RxJS](http://reactivex.io/rxjs/manual/overview.html) is expected)
### installation
```bash
npm install --save @offirmo/rx-auto
```
This lib is a state-of-the art 2017 module, correctly exposing node, UMD and ES7 flavors in their respective entries in package.json.
Modern tooling should be at ease.
For users doing stuff manually:
* several build flavors are available in `/dist`
* typescript's companion lib `tslib` is needed (not bundled together to avoid redundancy).
Exact instructions are depending your dependency manager -> you'll see errors if not present
### Usage / Example
TODO nice schema and corresponding code
### Notes
* I tried hard at providing precise, meaningful errors. So experiment: you'll be told what's wrong.
* There is a crude infinite loop detection
* Since Observables are "templates" instantiated on-demand, rx-auto call is **synchronous** !
If this startle you, go back at RxJS doc to better understand Observables.
### Advanced features
## Contributing
PR welcome. see CONTRIBUTING.md
## Licence
The UNLICENSE. Do wathever-you-want.