UNPKG

node-microsvc-lib

Version:
35 lines 1.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ToSnakeCase = exports.ToCamelCase = void 0; const lodash_1 = __importDefault(require("lodash")); /** * deeply converts keys of an object following converterFunction * @param {object} object to convert * @param {function} function to convert key. * @return converted object */ const convertCase = (oldObject, converterFunction) => { let newObject; if (!oldObject || typeof oldObject !== 'object' || !Object.keys(oldObject).length) { return oldObject; } if (Array.isArray(oldObject)) { newObject = oldObject.map((element) => convertCase(element, converterFunction)); } else { newObject = {}; Object.keys(oldObject).forEach((oldKey) => { const newKey = converterFunction(oldKey); newObject[newKey] = convertCase(oldObject[oldKey], converterFunction); }); } return newObject; }; exports.ToCamelCase = (obj) => convertCase(obj, lodash_1.default.camelCase); exports.ToSnakeCase = (obj) => convertCase(obj, lodash_1.default.snakeCase); //# sourceMappingURL=objects_utils.js.map