Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / composition / camelCaseKeys.js
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.addCamelCaseKeys = addCamelCaseKeys;
exports.camelCaseKeys = camelCaseKeys;
exports.default = void 0;

var _index = require("../chain-able/index.js");

/**
 * @desc this duplicates keys, is simplest fastest
 * @NOTE mutates obj
 * @param  {Object} obj
 * @return {Object}
 */
function addCamelCaseKeys(obj) {
  const keys = Object.keys(obj);
  const camelKeys = keys.map(_index.camelCase);

  for (let i = 0; i < keys.length; i++) {
    const camel = camelKeys[i]; // console.log({camel, camelKeys, i, keys, c: camelKeys[i], k: keys[i]})

    if (camel.length === 0) {
      continue;
    }

    obj[camel] = obj[keys[i]];
  }

  return obj;
}
/* eslint-disable max-statements */

/**
 * @todo I'm sure I wrote this elsewhere
 *
 * @NOTE is immutable
 * @param  {Object} obj
 * @return {Object}
 */


function camelCaseKeys(obj) {
  const keys = Object.keys(obj);
  const camelKeys = keys.map(_index.camelCase);
  const camelized = {};

  for (let index = 0; index < keys.length; index++) {
    const camel = camelKeys[index];
    const key = keys[index];
    const value = obj[key]; // is not camel

    if (camel.length === 0) {
      camelized[key] = value;
    } else {
      obj[camel] = value;
    }
  }

  return obj;
}

var _default = camelCaseKeys;
exports.default = _default;