variable-name-conversion
Version:
To easily convert a variable name to camelCase, kebab-case, etc.
99 lines (69 loc) • 3.34 kB
Markdown
[](https://www.npmjs.org/package/variable-name-conversion)
[](https://github.com/otomad/variable-name-conversion.js)
[][license-url]
[]: https://opensource.org/licenses/MIT
To easily convert a variable name to camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, etc.
Supports strong typing hints of TypeScript for static strings.
```bash
npm install variable-name-conversion
yarn add variable-name-conversion
pnpm add variable-name-conversion
```
```typescript
import VariableName from "variable-name-conversion";
const camel = new VariableName("hello_world").camel; //=> "helloWorld"
const kebab = new VariableName("fooBarBaz").kebab; //=> "foo-bar-baz"
```
Useful when you want to use static string type conversion without introduce runtime.
```typescript
import type VariableName from "variable-name-conversion";
type Camel = VariableName<"hello_world">["camel"]; //=> "helloWorld"
type Kebab = VariableName<"fooBarBaz">["kebab"]; //=> "foo-bar-baz"
```
Case | Example | Notes
--- | --- | ---
`camel` | `camelCase`
`pascal` | `PascalCase`
`kebab` | `kebab-case`
`snake` | `snake_case`
`const` | `CONSTANT_CASE`
`train` | `Train-Case`
`cobol` | `COBOL-CASE`
`pascalSnake` | `Pascal_Snake_Case`
`camelSnake` | `camel_Snake_Case`
`dot` | `dot.case`
`path` | `path/case`
`pathAlt` | `path\alt\case`
`lower` | `lowercase` | With no separators.
`upper` | `UPPERCASE` | With no separators.
`words` | `word case` | Separated by spaces, all in lowercase.
`sentence` | `Sentence case` | Separated by spaces, with only the first letter of the sentence capitalized.
`title` | `Title Case` | Separated by spaces, with all first letters of words capitalized.
`cssVar` | `--css-custom-property-name-form` | `kebab-case` with two dashes as the prefix.
`cssProp` | `css-property-name-form`<br />`-webkit-css-property-name-form` | Just like kebab-case, but if the first word is in "webkit", "moz", "ms", "o", it will use one dash as the prefix.
Should it maintain case sensitivity when converting to kebab-case, snake_case, etc.?
**Default:** false
Example:
```typescript
const snakeI = new VariableName("XMLHttpRequest").snake; //=> "xml_http_request"
const snakeS = new VariableName("XMLHttpRequest", true).snake; //=> "XML_Http_Request"
const camelI = new VariableName("XMLHttpRequest").camel; //=> "xmlHttpRequest"
const camelS = new VariableName("XMLHttpRequest", true).camel; //=> "XMLHttpRequest"
type SnakeI = VariableName<"XMLHttpRequest">["snake"]; //=> "xml_http_request"
type SnakeS = VariableName<"XMLHttpRequest", true>["snake"]; //=> "XML_Http_Request"
type CamelI = VariableName<"XMLHttpRequest">["camel"]; //=> "xmlHttpRequest"
type CamelS = VariableName<"XMLHttpRequest", true>["camel"]; //=> "XMLHttpRequest"
```
variable-name-conversion is available under the [MIT License][license-url]. See the LICENSE file for more info.