ramda-extension
Version:
Helpful functions built on top of the mighty Ramda
49 lines (42 loc) • 1.42 kB
JavaScript
;
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;