monocle-ts-esm
Version:
A porting of scala monocle library to TypeScript
21 lines (20 loc) • 445 B
JavaScript
/**
* @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);
}
}));
}