ramda-extension
Version:
Helpful functions built on top of the mighty Ramda
33 lines (26 loc) • 1.06 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _ramda = require("ramda");
var _applyCompose = _interopRequireDefault(require("./applyCompose"));
var _splitByDot = _interopRequireDefault(require("./splitByDot"));
var _mergeDeepRightAll = _interopRequireDefault(require("./mergeDeepRightAll"));
/**
* Unfolds input object by dot delimetered path inside its keys.
*
* @func
* @category Object
*
* @example
*
* R_.unfoldObjectDots({'a.b.c': 1, 'd.e.f': 2, 'g': 3})
* // {a: {b: {c: 1}}, d: {e: {f: 2}}, g: 3}
*
* @sig Object -> Object
*/
var unfoldObjectDots = (0, _ramda.o)((0, _ramda.o)(_mergeDeepRightAll.default, _ramda.values), (0, _ramda.mapObjIndexed)((0, _ramda.useWith)((0, _ramda.flip)(_ramda.call), [_ramda.identity, (0, _ramda.compose)(_applyCompose.default, (0, _ramda.map)(_ramda.objOf), _splitByDot.default)])));
var _default = unfoldObjectDots;
exports.default = _default;