UNPKG

ramda-extension

Version:

Helpful functions built on top of the mighty Ramda

49 lines (42 loc) 1.42 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ramda = require("ramda"); var _headArg = _interopRequireDefault(require("./headArg")); var _alwaysEmptyObject = _interopRequireDefault(require("./alwaysEmptyObject")); var _viewWith = _interopRequireDefault(require("./viewWith")); /** * Firstly applies transformation on input data structure according to provided "lens". * Returning value is made by the "setting" the portion * of the result focused by the given `lens`. * * @func * @category Object * * * @param {Object} lens Lens * @param {function} tranformation Transformation function * @param {any} input * @returns {Object} Firstly applies transformation on `input` according to `lens` (`R.over`) * and than returning value is made by the "setting" (`R.set`) the portion * of previous result focused by the given `lens`. * * @example * * R_.objOfOver( * R.lensPath(['a', 'b']), * (x) => "Hello " + x, * { * a: { b: 'foo' }, * c: 'bar', * } * ) * // { a: { b: "Hello foo" } } * */ var objOfOver = (0, _ramda.converge)(_ramda.set, [_headArg.default, _viewWith.default, _alwaysEmptyObject.default]); var _default = objOfOver; exports.default = _default;