UNPKG

ramda-extension

Version:

Helpful functions built on top of the mighty Ramda

69 lines (59 loc) 1.95 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 _mapKeysAndValues = _interopRequireDefault(require("./mapKeysAndValues")); var _toCamelCase = _interopRequireDefault(require("./toCamelCase")); var _isNotNilObject = _interopRequireDefault(require("./isNotNilObject")); var _isArray = _interopRequireDefault(require("./isArray")); var _isFunction = _interopRequireDefault(require("./isFunction")); // Must be written as arrow `x => camelizeKeys(x)` due to recursion // prettier-ignore var camelizeObj = (0, _mapKeysAndValues.default)((0, _ramda.juxt)([(0, _ramda.o)(_toCamelCase.default, _ramda.head), (0, _ramda.o)(function (x) { return camelizeKeys(x); }, _ramda.last)])); var camelizeArray = (0, _ramda.map)(function (x) { return camelizeKeys(x); }); /** * Recursively camelize all keys within an object or array * * @func * @category Object * * @param {any} x Object to transform * @return {any} * @example * * camelizeKeys({ * 'co-obj': { co_string: 'foo' }, * 'co-array': [0, null, { 'f-f': 'ff' }], * 'co-number': 1, * 'co-string': '1', * 'co-fn': head, * }); * * // { * // coArray: [ * // 0, * // null, * // { * // fF: 'ff' * // } * // ], * // coFn: [Function], * // coNumber: 1, * // coObj: { * // coString: 'foo' * // }, * // coString: '1' * // } * */ // prettier-ignore var camelizeKeys = (0, _ramda.cond)([[_isArray.default, camelizeArray], [_isFunction.default, _ramda.identity], [_isNotNilObject.default, camelizeObj], [_ramda.T, _ramda.identity]]); var _default = camelizeKeys; exports.default = _default;