node-microsvc-lib
Version:
NodeJS microservice framework library
35 lines • 1.31 kB
JavaScript
;
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