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