keys-converter
Version:
This package provide a util function to convert snake case object keys to camel case
144 lines (93 loc) • 2.56 kB
Markdown
object keys to camel-case or snake-case.
```sh
npm i keys-converter
yarn add keys-converter
```
Use on browser
```html
<script src="https://cdn.jsdelivr.net/npm/keys-converter@3.0.3/bundle/index.min.js"></script>
```
```html
<script type="module">
import { objectKeysToCamelCaseV2, objectKeysToSnakeCaseV2 } from 'https://cdn.skypack.dev/keys-converter';
</script>
```
```ts
import { objectKeysToSnakeCaseV2, objectKeysToCamelCaseV2 } from 'keys-converter';
```
---
`objectKeysToCamelCaseV2` and `objectKeysToSnakeCaseV2`
- convert object keys from `snake_case` to `camelCase`
```ts
import { objectKeysToCamelCaseV2 } from 'keys-converter';
const user = {
_id: "sf2309sdf0010",
company_name: "some name",
user_password: "some@pass123",
created_at: "2020-01-01",
updated_at: "2020-01-01"
};
const result = objectKeysToCamelCaseV2(user);
console.log(result);
> `{
_id: "sf2309sdf0010",
companyName: "some name",
userPassword: "some@pass123",
createdAt: "2020-01-01",
updatedAt: "2020-01-01"
}`
```
- convert object keys from `camelCase` to `snake_case`
```ts
import { objectKeysToSnakeCaseV2} from 'keys-converter';
const user = {
_id: "sf2309sdf0010",
companyName: "some name",
userPassword: "some@pass123",
createdAt: "2020-01-01",
updatedAt: "2020-01-01"
};
const result = objectKeysToSnakeCaseV2(user);
console.log(result);
> `{
_id: "sf2309sdf0010",
company_name: "some name",
user_password: "some@pass123",
created_at: "2020-01-01",
updated_at: "2020-01-01"
}`
```
The function `objectKeysToCamelCaseV2` receives an object.
You can to infer the return type as argument so the result returned will have types
```ts
const user = {
_id: "sf2309sdf0010",
companyName: "some name",
userPassword: "some@pass123",
createdAt: "2020-01-01",
updatedAt: "2020-01-01"
};
/** Dynamic Type */
interface ResultType {
_id: string;
company_name: string,
user_password: string,
created_at: "2020-01-01",
updated_at: "2020-01-01"
}
const result = objectKeysToSnakeCaseV2<ResultType>(user);
```
If you provide the input type the function will validate the arguments,
So if you provide the result type the returned value will have "types"
<img src="https://i.ibb.co/dBnZszX/inference-type.png">
---
> - Function does not remove the first underscore for security
example
If your object has a protected prop like `_id` It will keep it
A lib to convert