0.1.0 • Published 4 years ago

funcollate v0.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

Funcollate

version-widget build-widget bundle-size-widget

A diff & patch tool for immutable state tree.

// local.js
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));

// remote.js
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