Funcollate

A diff & patch tool for immutable state tree.
import { diff } from "funcollate";
const prev = {
name: "counter",
count: 0
};
const next = {
name: "counter",
count: 1
};
const d = diff(prev, next);
send(JSON.stringify(d));
import { patch } from "funcollate";
const prev = {
name: "counter",
count: 0
};
const d = JSON.parse(receive());
const next = patch(prev, d);
assert(next.name === "counter");
assert(next.count === 1);
assert(prev.count === 0);
API
diff(prev: T, next: T): Difference
- @param
prev
: previous state tree - @param
next
: next state tree - @return: an opaque value that represents difference and can be json serialized
Returns difference between prev
and next
.
patch(prev: T, diff: Difference): T
- @param
prev
: previous state tree - @param
diff
: difference generated by diff
- @return: next state tree
Generates next state tree from prev
and diff
.
Mutates nothing of prev
.
Similar