domchristie / humps

🐫 Underscore-to-camelCase converter (and vice versa) for strings and object keys in JavaScript.
1.42k stars 99 forks source link

Camelize keys & uppercase #63

Open aliceclv opened 2 years ago

aliceclv commented 2 years ago

I noticed that some uppercased keys were camelized in a weird way:

humps.camelizeKeys({ "USERNAME":  "foo" }) // returns { uSERNAME: "foo" }

I've used a custom function & lodash to prevent this from happening, but I was wondering if that was the expected behaviour from humps.

    // Use lowercase instead of camelization for uppercase-only keys
    // (to prevent USERNAME from becoming uSERNAME)
    humps.camelizeKeys(data, function (key, convert, options) {
      return /^[A-Z0-9_]+$/.test(key) ? lowerCase(key) : convert(key, options);
    });
duecknoah commented 1 year ago

I'm also wondering this.

dreambo8563 commented 1 year ago

see code https://github.com/domchristie/humps/blob/d612998749922a76c68d4d9c8b5ae93f02595019/humps.js#L57C3-L57C3