UNPKG

@typed/lenses

Version:

Strongly-typed functional lenses

12 lines 413 B
import { curry } from '@typed/lambda'; import { set } from '@typed/objects'; export var Lens; (function (Lens) { Lens.create = (get, set) => ({ get, update: curry((f, a) => set(f(get(a)), a)), }); Lens.id = () => Lens.create((a) => a, (_, a) => a); Lens.prop = (key) => Lens.create((a) => a[key], (b, a) => set(key, b, a)); })(Lens || (Lens = {})); //# sourceMappingURL=Lens.js.map