@mmckelvy/case

A set of utility functions converting the case of strings.

Usage no npm install needed!

<script type="module">
  import mmckelvyCase from 'https://cdn.skypack.dev/@mmckelvy/case';
</script>

README

case

A set of utility functions for converting case.

Installation

npm install @mmckelvy/case

Usage

Convert the case of a word:

const { camelCase, snakeCase } = require('@mmckelvy/case');

camelCase('first_name');
// -> 'firstName'

snakeCase('firstName');
// -> 'first_name'

properCase('first_name');
// -> 'First name'

titleCase('first_name');
// -> 'First Name'

Handles kabob-case, extra characters, and spaces as well:

camelCase('first-name');
// -> 'firstName'

snakeCase('First--Name');
// -> 'first_name'

A frequent use case for case conversion is converting the case of object keys. case comes with camelCaseKeys and snakeCaseKeys helper methods to handle this use case:

const { camelCaseKeys, snakeCaseKeys } = require('@mmckelvy/case');

const snakeToCamel = {
  first_name: 'John',
  last_name: 'Smith'
};

camelCaseKeys(snakeToCamel);
/* ->
{
  firstName: 'John',
  lastName: 'Smith'
};
*/

const camelToSnake = {
  firstName: 'John',
  lastName: 'Smith'
};

snakeCaseKeys(camelToSnake);
/* ->
{
  first_name: 'John',
  last_name: 'Smith'
};
*/

Works with arrays:

const input = [
  {
    first_name: 'John',
    last_name: 'Smith'
  },
  {
    first_name: 'Jane',
    last_name: 'Jenkins'
  },
];

camelCaseKeys(input);
/* ->
[
  {
    firstName: 'John',
    lastName: 'Smith'
  },
  {
    firstName: 'Jane',
    lastName: 'Jenkins'
  },
];
*/

To handle nested objects, pass {recursive: true} as the second argument:

const input = {
  first_name: 'John',
  last_name: 'Smith',
  address: {
    country_of_residence: 'USA',
  }
};

camelCaseKeys(input, {recursive: true});

/* ->
{
  firstName: 'John',
  lastName: 'Smith',
  address: {
    countryOfResidence: 'USA'
  }
};
*/

API

camelCase(str)

Convert a string to camelCase.

str

string

The string to convert.

return

string

A new string in camelCase.

snakeCase(str)

Convert a string to snake_case.

str

string

The string to convert.

return

string

A new string in snake_case.

properCase(str)

Convert a string to Proper case.

str

string

The string to convert.

return

string

A new string in Proper case.

titleCase(str)

Convert a string to Title Case.

str

string

The string to convert.

return

string

A new string in Title Case.

camelCaseKeys(input, options?)

Convert object keys to camelCase.

input

object or object[]

An object or array of objects with keys you'd like to convert.

options (optional)

object

options.recursive

boolean

Recursively convert keys for nested objects and arrays.

return

A new object or object[] (does not mutate the original object or object[]).

snakeCaseKeys(input, options?)

Convert object keys to snake_case.

input

object or object[]

An object or array of objects with keys you'd like to convert.

options (optional)

object

options.recursive

boolean

Recursively convert keys for nested objects and arrays.

return

A new object or object[] (does not mutate the original object or object[]).