UNPKG

monocle-ts

Version:

A porting of scala monocle library to TypeScript

23 lines (22 loc) 545 B
/** * @since 1.7.0 */ import { At, Lens } from '..'; import { isNone } from 'fp-ts/es6/Option'; import * as R from 'fp-ts/es6/Record'; /** * @category constructor * @since 1.7.0 */ export function atRecord() { return new At(function (k) { return new Lens(function (r) { return R.lookup(k, r); }, function (oa) { return function (r) { if (isNone(oa)) { return R.deleteAt(k)(r); } else { return R.insertAt(k, oa.value)(r); } }; }); }); }