Skip to content

A tiny lib for object key's normalization, transform camelCase { fullName } objects to snakeCase { full_name } or other patterns.

License

Notifications You must be signed in to change notification settings

caio-ribeiro-pereira/field-normalizer

Repository files navigation

Field Normalizer

Donate via Paypal Build Status Codacy Badge Coverage Status npm GitHub npm GitHub stars GitHub forks

A tiny lib for object field's normalization.

About

This is a tiny lib (~14kb size unpacked) compatible with Node.js v11+, useful to format the name of all keys in a object.
For example, imagine you have a frontend in JavaScript which uses the camelCase ({ fullName, contactInfo }) pattern for object's naming convention and you have a ruby on rails's backend api which uses the snakeCase convention ({ full_name, contact_info }), sometimes the data flow can be a messy if you don't keep these objects normalized between these frontend and backend, and that's why this tiny lib was born.

How to install

npm install --save field-normalizer

How to use

Object example:

const FNZ = require('field-normalizer');

const exampleObj = {
  fullName: 'John Connor',
  contactEmail: '[email protected]',
  phoneNumber: '+05533334444',
};

Transforming all object fields to lower case:

FNZ.toLowerCase(exampleObj);
// { fullname, contactemail, phonenumber }

Transforming all object fields to upper case:

FNZ.toUpperCase(exampleObj);
// { FULLNAME, CONTACTEMAIL, PHONENUMBER }

Transforming all object fields to camel case:

FNZ.toCamelCase(exampleObj);
// { fullName, contactEmail, phoneNumber }

Transforming all object fields to pascal case:

FNZ.toPascalCase(exampleObj);
// { FullName, ContactEmail, PhoneNumber }

Transforming all object fields to constant case:

FNZ.toConstantCase(exampleObj);
// { FULL_NAME, CONTACT_EMAIL, PHONE_NUMBER }

Transforming all object fields to snake case:

FNZ.toSnakeCase(exampleObj);
// { full_name, contact_email, phone_number }

Transforming all object fields to header case:

FNZ.toHeaderCase(exampleObj);
// { Full-Name, Contact-Email, Phone-Number }

Transforming all object fields to param case:

FNZ.toParamCase(exampleObj);
// { full-name, contact-email, phone-number }

Constant of all public functions:

console.log(FNZ.FUNCTIONS)

Factory transform() for function dynamic invokation:

FNZ.transform(exampleObj, FNZ.FUNCTIONS.camelCase);

Author

Caio Ribeiro Pereira [email protected]
Twitter: https://twitter.com/crp_underground
About me: https://crpwebdev.github.io