@ts-series/case
v1.0.1
Published
Platform-agnostic utility for converting strings between different casing styles.
Maintainers
Readme
Case.ts
Platform-agnostic utility for converting strings between different casing styles, using only standard JavaScript and TypeScript features. Runs unmodified in the browser, Deno, and Node.js.
Installation
Deno / JSR
deno add jsr:@ts-series/caseNode / npm
npm install @ts-series/caseBrowser
<script type="module">
import { toCamelCase } from 'https://esm.sh/jsr/@ts-series/case';
</script>Usage
import { toCamelCase, toPascalCase, toSnakeCase, toKebabCase, toSlug } from '@ts-series/case';
toCamelCase('hello world'); // 'helloWorld'
toPascalCase('hello world'); // 'HelloWorld'
toSnakeCase('helloWorld'); // 'hello_world'
toKebabCase('HelloWorld'); // 'hello-world'
toSlug('Héllo Wörld!'); // 'hello-world'All conversion functions accept string | null | undefined and return a usable result without throwing, making them safe to use directly on optional or unvalidated input.
API
Besides the casing conversion functions, the underlying primitives are also exported, allowing more specialized casing logic to be built on top of them.
toWords(str, map?, separators?)
Splits a string into tokens, recognising camelCase and PascalCase boundaries as well as common separator characters (spaces, hyphens, underscores, dots, slashes, and others). Supports Unicode letters and digits.
By default, each word is lowercased. A custom map function or null (to skip transformation) can be passed as the second argument. A custom separator pattern can be passed as the third argument.
capitalize(word)
Capitalizes the first character of a word, leaving the rest unchanged.
toCamelCase(str)
Converts a string to camelCase.
toPascalCase(str)
Converts a string to PascalCase.
toTitleCase(str)
Converts a string to Title Case, with each word capitalized and separated by spaces.
toSentenceCase(str)
Converts a string to Sentence case, with only the first word capitalized.
toSnakeCase(str)
Converts a string to snake_case.
toKebabCase(str)
Converts a string to kebab-case.
toSlug(str)
Converts a string into a URL-safe slug, normalising Unicode, collapsing whitespace and dash-like characters into hyphens, and percent-encoding the result.
convertKeys(obj, transform, recursive?, excludedClasses?)
Returns a new object with all keys transformed by the given function. When recursive is true, nested objects are processed as well, except instances of any class listed in excludedClasses.
convertKeys({ user_name: 'Rico', user_age: 30 }, toCamelCase);
// { userName: 'Rico', userAge: 30 }License
Released into the public domain under the Unlicense.
