sagaz
A generalized dependency-free library providing a similar UX to redux-saga
but less tied to redux
. It provides most of the core effects that redux-saga
provides and should have overall similar behavior.
Install
yarn add sagaz
or
npm install --save sagaz
Coverage
This project provides .flow.js
files for Flow
to utilize. It also attempts to provide 100% test coverage.
Example
Simple
; const sagaTask = ; sagaTask;sagaTask;sagaTask;sagaTask;
Receive MY_TYPE: [ 1 ]
Receive MY_TYPE: [ 2 ]
Receive MY_TYPE: [ 3 ]
Receive MY_TYPE: [ 4 ]
Simple Take & Fork
; : Generator<any, any, any> { while true const args2 = ; cconsole; } : Generator<any, any, any> { while true const args = ; console; ; } ;; const sagaTask = ; sagaTask;sagaTask; sagaTask;sagaTask;
MY_TYPE RECEIVED [ 1 ]
MY_TYPE RECEIVED [ 2 ]
SECOND_TYPE RECEIVED [ 1 ] [ 5 ]
SECOND_TYPE RECEIVED [ 2 ] [ 5 ]
SECOND_TYPE RECEIVED [ 1 ] [ 6 ]
SECOND_TYPE RECEIVED [ 2 ] [ 6 ]
Promised Result
It is also possible to get a promise that resolves to the result of any saga. Since cancellation isn't a native part of Promise
we throw a custom error in its place that you can check against within a catch clause.
; : Generator<any, any, any> { const type args = ; console; return type args;} const sagaTask = ; sagaTask ; sagaTask;
TYPE RECEIVED: WILDCARD_PROMISE_EXAMPLE [ 1 ]
Root Saga Result: [ 'WILDCARD_PROMISE_EXAMPLE', [ 1 ] ]