https://github.com/jerridan/convert-keys-js
Convert key casing in nested JS objects and arrays
https://github.com/jerridan/convert-keys-js
camel-case camelcase javascript kebab-case kebabcase key-converter snake-case snakecase typescript
Last synced: about 2 months ago
JSON representation
Convert key casing in nested JS objects and arrays
- Host: GitHub
- URL: https://github.com/jerridan/convert-keys-js
- Owner: jerridan
- License: mit
- Created: 2023-05-16T01:12:44.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-08T01:52:46.000Z (over 1 year ago)
- Last Synced: 2025-03-12T05:35:45.177Z (2 months ago)
- Topics: camel-case, camelcase, javascript, kebab-case, kebabcase, key-converter, snake-case, snakecase, typescript
- Language: TypeScript
- Homepage:
- Size: 371 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# ConvertKeys
`ConvertKeys` is a tool for converting object keys between camel case, snake case and kebab case.
### Key Features:
- Accepts objects and arrays
- Handles deeply-nested keys
- Supports overrides for specific key conversions## Installation
Install `ConvertKeys` via npm or yarn:
```bash
npm install @jerridan/convert-keys
# or
yarn add @jerridan/convert-keys
```## Usage
ConvertKeys exports three functions:
- `toSnakeCase` -> for converting keys to snake case
- `toCamelCase` -> for converting keys to camel case
- `toKebabCase` -> for converting keys to kebab caseEach function accepts two arguments:
1. `input` -> the object or array to convert
2. `overrides` -> an optional object containing overrides for specific key conversions### Examples
**Converting an object**
```javascript
toSnakeCase({ objectKey: "value" });
// Output: { object_key: "value" }
```**Converting a complex nested object**
```javascript
toCamelCase({
object_key: [
[{ nested_key: 1 }, { nested_key: 2 }],
[{ nested_key: 3 }, { nested_key: 4 }],
],
});
// Output:
// {
// objectKey: [
// [{ nestedKey: 1 }, { nestedKey: 2 }],
// [{ nestedKey: 3 }, { nestedKey: 4 }],
// ],
// }
```**Using overrides**
```javascript
const overrides = { nestedKey: "overridden-key" };
toKebabCase({ objectKey: { nestedKey: "value" } }, overrides);
// Output:
// { "object-key": { "overridden-key": "value" } }
```## Contributing
Contributions to this project are welcome. Please follow these general guidelines:
- **Reporting Bugs**: Submit an issue via GitHub with a clear title and description, steps to reproduce, expected behavior, and the actual behavior observed.
- **Pull Requests**: Pull requests should be well-tested, readable, and maintain the integrity of the project. If your pull request is aimed at fixing a bug, link the relevant issue in the description. Additionally, please update the CHANGELOG.md file with a summary of your changes.
- **Feature Requests**: Feel free to open an issue to discuss new feature ideas before starting implementation.## License
This project is released under the MIT License. For more details, see the LICENSE file in the repository.