78 lines
2.7 KiB
Markdown
78 lines
2.7 KiB
Markdown
# Change Case
|
|
|
|
> Transform a string between `camelCase`, `PascalCase`, `Capital Case`, `snake_case`, `kebab-case`, `CONSTANT_CASE` and others.
|
|
|
|
## Installation
|
|
|
|
```
|
|
npm install change-case --save
|
|
```
|
|
|
|
## Usage
|
|
|
|
```js
|
|
import * as changeCase from "change-case";
|
|
|
|
changeCase.camelCase("TEST_VALUE"); //=> "testValue"
|
|
```
|
|
|
|
Included case functions:
|
|
|
|
| Method | Result |
|
|
| ----------------- | ----------- |
|
|
| `camelCase` | `twoWords` |
|
|
| `capitalCase` | `Two Words` |
|
|
| `constantCase` | `TWO_WORDS` |
|
|
| `dotCase` | `two.words` |
|
|
| `kebabCase` | `two-words` |
|
|
| `noCase` | `two words` |
|
|
| `pascalCase` | `TwoWords` |
|
|
| `pascalSnakeCase` | `Two_Words` |
|
|
| `pathCase` | `two/words` |
|
|
| `sentenceCase` | `Two words` |
|
|
| `snakeCase` | `two_words` |
|
|
| `trainCase` | `Two-Words` |
|
|
|
|
All methods accept an `options` object as the second argument:
|
|
|
|
- `delimiter?: string` The character to use between words. Default depends on method, e.g. `_` in snake case.
|
|
- `locale?: string[] | string | false` Lower/upper according to specified locale, defaults to host environment. Set to `false` to disable.
|
|
- `split?: (value: string) => string[]` A function to define how the input is split into words. Defaults to `split`.
|
|
- `prefixCharacters?: string` Retain at the beginning of the string. Defaults to `""`. Example: use `"_"` to keep the underscores in `__typename`.
|
|
- `suffixCharacters?: string` Retain at the end of the string. Defaults to `""`. Example: use `"_"` to keep the underscore in `type_`.
|
|
|
|
By default, `pascalCase` and `snakeCase` separate ambiguous characters with `_`. For example, `V1.2` would become `V1_2` instead of `V12`. If you prefer them merged you can set `mergeAmbiguousCharacters` to `true`.
|
|
|
|
### Split
|
|
|
|
**Change case** exports a `split` utility which can be used to build other case functions. It accepts a string and returns each "word" as an array. For example:
|
|
|
|
```js
|
|
split("fooBar")
|
|
.map((x) => x.toLowerCase())
|
|
.join("_"); //=> "foo_bar"
|
|
```
|
|
|
|
## Change Case Keys
|
|
|
|
```js
|
|
import * as changeKeys from "change-case/keys";
|
|
|
|
changeKeys.camelCase({ TEST_KEY: true }); //=> { testKey: true }
|
|
```
|
|
|
|
**Change case keys** wraps around the core methods to transform object keys to any case.
|
|
|
|
### API
|
|
|
|
- **input: any** Any JavaScript value.
|
|
- **depth: number** Specify the depth to transfer for case transformation. Defaults to `1`.
|
|
- **options: object** Same as base case library.
|
|
|
|
## TypeScript and ESM
|
|
|
|
This package is a [pure ESM package](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) and ships with TypeScript definitions. It cannot be `require`'d or used with CommonJS module resolution in TypeScript.
|
|
|
|
## License
|
|
|
|
MIT
|