immer-rxjs
This small library helps you use Immer with RxJS. It exports only one function, you can use it to replace rxjs's map
operator.
update in 3.0.0
At beginning I want to compute and reapply patches by fast-json-patch so I could be sure if the produced value is structurally identical to previous value, the result will be identically be the same, but late on I find that is a bad idea (you should use immer the right way and don't worry about it) so I turned it off by default in 2.0.0 and removed it in 3.0.0.
Usage
Let's just review the final source code here:
;;; { Object;} { if fn === void 0 fn = defaultMapFn; if initValue === void 0 initValue = ; return ;}
so how we use it:
produce()
source$
The produce
function is like Immer's Curried producers except that it expect new value from source$
(like action
of curried producer) be the first argument and draft
to be the second.
You can edit draft object like in immer producer:
source$
or you can just return new value from it, that way you can treat it like a map
operator replacement. but it's not recommended as below
not recommended to do this since it return new object every time:
const sub$ = ;sub$ ;sub$next b: 2 ;sub$next b: 2 ;
this is better
const sub$ = ;sub$ ;sub$next b: 2 ;sub$next b: 2 ;
immerify()
default fn is (current, last) => {Object.assign(last, current)}
, you can do:
const sub$ = ;sub$ ;sub$next b: 2 ;sub$next b: 2 ;
License
MIT