| import _curry1 from "./internal/_curry1.js"; |
| import assocPath from "./assocPath.js"; |
| import lens from "./lens.js"; |
| import path from "./path.js"; |
| /** |
| * Returns a lens whose focus is the specified path. |
| * |
| * @func |
| * @memberOf R |
| * @since v0.19.0 |
| * @category Object |
| * @typedefn Idx = String | Int |
| * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s |
| * @sig [Idx] -> Lens s a |
| * @param {Array} path The path to use. |
| * @return {Lens} |
| * @see R.view, R.set, R.over |
| * @example |
| * |
| * const xHeadYLens = R.lensPath(['x', 0, 'y']); |
| * |
| * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]}); |
| * //=> 2 |
| * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]}); |
| * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]} |
| * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]}); |
| * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]} |
| */ |
| |
| var lensPath = |
| /*#__PURE__*/ |
| _curry1(function lensPath(p) { |
| return lens(path(p), assocPath(p)); |
| }); |
| |
| export default lensPath; |