Skip to content

camel-kit

npm package

NPM versionNPM Downloadsjsdelivr

A lightweight and feature-rich utility library for bidirectional conversion between camelCase and snake_case.


Core Features

  • Bidirectional Conversion: Supports seamless conversion between camelCasesnake_case.
  • Flexible Configuration: Customize behavior with options (e.g., preserve consecutive uppercase letters, custom separators).
  • Unicode Support: Compatible with multilingual characters (e.g., Greek letters, Japanese).
  • Zero Dependencies: Only ~2KB (gzipped).

Installation

bash
npm add camel-kit
bash
pnpm add camel-kit
bash
yarn add camel-kit
html
<script src="https://cdn.jsdelivr.net/npm/camel-kit/dist/index.umd.min.js"></script>
<script>
  const { camelize, decamelize } = CamelKit;
  console.log(camelize('snake_case_example')); // Output: snakeCaseExample
  console.log(decamelize('camelCaseExample')); // Output: camel_case_example
</script>

Quick Start

javascript
import { camelize, decamelize } from 'camel-kit';

// Snake to Camel
console.log(camelize('snake_case_example')); // Output: snakeCaseExample

// Camel to Snake
console.log(decamelize('camelCaseExample')); // Output: camel_case_example

Advanced Features

1. Configuration Options

camelize Options

javascript
// Convert to PascalCase (uppercase first letter)
console.log(camelize('hello_world', { pascalCase: true })); // Output: HelloWorld

// Preserve consecutive uppercase letters (e.g., 'HTTPRequest' → 'http_Request')
console.log(camelize('HTTP_Request', { preserveConsecutiveUppercase: true })); // Output: hTTP_Request

decamelize Options

javascript
// Custom separator (e.g., kebab-case)
console.log(decamelize('camelCase', { separator: '-' })); // Output: camel-case

// Preserve consecutive uppercase letters (e.g., 'FOOBar' → 'FOO_Bar')
console.log(decamelize('FOOBar', { preserveConsecutiveUppercase: true })); // Output: FOO_Bar

2. Array Input Handling

javascript
console.log(camelize(['hello', 'world'])); // Output: helloWorld
console.log(decamelize('helloWorld', { separator: '_' })); // Output: hello_world

3. Unicode Support

javascript
// Process multilingual characters
console.log(camelize('üser_näme')); // Output: üserNäme
console.log(decamelize('üserNäme')); // Output: üser_näme

Browser Support

ChromeFirefoxSafariOperaEdge
Latest ✔Latest ✔Latest ✔Latest ✔Latest ✔