field-caser
is a project that allows you to do one thing, and one thing only... switch field names from various formats like:
- Snake case: e.g.
foo_bar
- Camel case: e.g.
fooBar
- Kebab case: e.g.
foo-bar
I found it annoying to map JSON from older (or opinionated) REST endpoints that use snake case to camel case. This is often the case when using TypeScript in the Node.js and browser world, especially if you're typing all of your outputs. While other frameworks add this feature, this is naked for you to use at your discretion.
And yes, this is a deep conversion. It will recurse and find all of the child objects and arrays (naive, depth first).
To use field-caser
first install it via npm
:
npm install --save field-caser
Or yarn
:
yarn add field-caser
There's a very simple little Node application under the example
directory that demonstrates usage in TypeScript.
Essentially:
const snakeUser = {
first_name: 'Homer',
last_name: 'Simpson'
}
interface User {
firstName: string,
lastName: string
}
const camelUser: User = <User>transformAllFieldNamesToCamel(snakeUser)
You don't need to type the input, as we utilize the unknown
type for this (since you probably don't want to bother typing the "bad" shapes).
As usual, since this is TypeScript, there's no guarantee that your input truly matches since that would need a run time check. So caveat emptor.