@mmckelvy/case v1.3.1
case
A set of utility functions for converting case.
Installation
npm install @mmckelvy/caseUsage
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[]).
compare(a, b, fn?)
Standardize two strings and then compare them.
a
string
The first string to compare.
b
string
The second string to compare.
fn (optional)
function
A function applied to each string to standardize it. Defaults to snakeCase.
return
boolean
true if the strings are === after applying the standardization function, else false.