UNPKG

bananas-commerce

Version:

A client for bananas-commerce with support for TypeScript

25 lines (24 loc) 1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.casedObjectKeys = void 0; const casedString_js_1 = require("./casedString.js"); /** Converts the keys (or deeply nested keys) of an {@link object} to the specified {@link casing}. */ const casedObjectKeys = (object, casing) => { if (typeof object !== "object" || object === null) { return object; } else if (Array.isArray(object)) { return object.map((element) => (0, exports.casedObjectKeys)(element, casing)); } const cased = {}; Object.keys(object).forEach((key) => { cased[(0, casedString_js_1.casedString)(key, casing)] = (0, exports.casedObjectKeys)(object[key], casing); }); return cased; }; exports.casedObjectKeys = casedObjectKeys; const objectCasers = { snake: (object) => (0, exports.casedObjectKeys)(object, "snake"), camel: (object) => (0, exports.casedObjectKeys)(object, "camel"), }; Object.assign(exports.casedObjectKeys, objectCasers);