change-case
Transform strings between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, and more
Repository Health
Technical Analysis
change-case is a small, dependency-free TypeScript library for converting strings between virtually every common casing convention — camelCase, PascalCase, snake_case, kebab-case (param-case), CONSTANT_CASE, Capital Case, dot.case, path/case, and more — as one package exporting a dedicated function per case.
As of v5, the project consolidated what used to be a dozen+ separately published packages (camel-case, pascal-case, snake-case, param-case, etc.) into this single change-case package sharing one word-splitting engine, so consumers pull in one dependency instead of a chain of tiny ones.
What You Get
- Dedicated conversion functions for camelCase, pascalCase, snakeCase, kebabCase, constantCase, capitalCase, dotCase, pathCase, sentenceCase, and more, all from one package
- A shared, locale-aware
split()word-boundary engine that correctly handles Unicode, acronyms, and embedded numbers - Configurable options per conversion (custom delimiter, prefix/suffix character preservation, custom split function)
- Zero runtime dependencies and full TypeScript types out of the box
- Companion packages (
sponge-case,swap-case,title-case) in the same monorepo for less common transformations
Common Use Cases
- Converting API response keys from snake_case to camelCase (or vice versa) at a serialization boundary
- Generating consistent file, class, or variable names from user input or CMS-entered titles in a code generator
- Normalizing CSS class names or HTML attribute names between kebab-case and camelCase in a styling utility
- Building CLI scaffolding tools that need to derive multiple casing variants of a single project/feature name
Under The Hood
Architecture — The monorepo (managed via ts-scripts) currently ships four packages under packages/: the consolidated change-case package containing every mainstream case converter as named exports from one src/index.ts, plus three standalone packages (sponge-case, swap-case, title-case) for transformations that don’t fit the shared splitting model. change-case’s core is a regex-based split() function using Unicode-aware patterns (\p{Ll}, \p{Lu}) to find word boundaries across lower-to-upper transitions, consecutive-uppercase acronym boundaries, and embedded digits, then every case function (camelCase, snakeCase, etc.) is a thin wrapper that calls split() and re-joins words with the right delimiter and capitalization rule. Tech Stack — Pure TypeScript, ESM-only (type: module), built and tested via the shared ts-scripts tooling with Vitest for both specs (*.spec.ts) and benchmarks (bench script), no runtime dependencies at all. Code Quality — Every exported function has a colocated .spec.ts file (index.spec.ts, keys.spec.ts) exercising edge cases like consecutive acronyms and Unicode input; the package is feature-complete and stable but has seen no commits in roughly a year, reflecting a mature, effectively ‘done’ library rather than active development. API Design — The v5 redesign’s biggest ergonomic win is exporting every case function from one root import (import { camelCase, snakeCase } from 'change-case') instead of installing a separate package per case, while keeping each function’s signature simple (string in, options object optional, string out) with no class instances or configuration objects required for the common path.
Used by 13 apps in this directory
authentik
Authentication · Security
The self-hosted Identity Provider that replaces Okta, Auth0, and Entra ID with a unified SSO platform supporting SAML, OAuth2/OIDC, LDAP, RADIUS, and WebAuthn.
Dittofeed
Marketing · Automation
Open-source omni-channel customer engagement platform for automating transactional and marketing messages via email, SMS, WhatsApp, Slack, and mobile push.
Enso
Analytics · Data Engineering · Low Code Platforms
A visual and textual programming platform for data prep and analysis where the node graph and the underlying Enso code are always perfectly in sync, built by an Alteryx co-founder on a GraalVM engine.
IT-Tools
Developer Tools
A unified collection of 88 web-based developer utilities — from JSON formatting to subnet calculation — all self-hostable, keyboard-searchable, and offline-ready.
Kestra
Devops · Data Engineering · Automation
Event-driven orchestration platform for data, AI, and infrastructure workflows — define everything in YAML, run anywhere at scale.
Logseq
Note Taking · Knowledge Management
A privacy-first, open-source knowledge graph platform combining Markdown, Org-mode, bidirectional linking, and local-first storage for building your second brain.
massCode
Developer Tools · Productivity · Code Editors
A free, local-first developer workspace unifying snippets, notes, HTTP requests, calculations, drawings, and dev tools in one desktop app.
Midday
Invoicing Finance · Productivity
All-in-one AI-powered business operations platform for freelancers and solo entrepreneurs to manage invoicing, time tracking, banking, and financial intelligence.
n8n
Automation · No Code Platforms
Code when you need it, UI when you don't — the workflow automation platform built for technical teams who refuse to choose.