UNPKG

monocle-ts-esm

Version:

A porting of scala monocle library to TypeScript

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