import { lensSymbol } from "./lens"; import path from "./path"; import curry from "../function/curry"; /** * Runs the transform function over the part of the data that the lens is focusing on. * * @param {object} lens * @param {function} transformFn * @param {any} data * @returns {any} * @see lens */ const over = (lens, transformFn, data) => { const setter = path([lensSymbol, "setter"], lens); const getter = path([lensSymbol, "getter"], lens); return setter(transformFn(getter(data)), data); }; export default curry(over);