
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`
Convert a dash/dot/underscore/space separated string to camelCase or PascalCase:
foo-bar→fooBar
Correctly handles Unicode strings.
If you use this on untrusted user input, don't forget to limit the length to something reasonable.
npm install camelcase
import camelCase from 'camelcase';
camelCase('foo-bar');
//=> 'fooBar'
camelCase('foo_bar');
//=> 'fooBar'
camelCase('Foo-Bar');
//=> 'fooBar'
camelCase('розовый_пушистый_единорог');
//=> 'розовыйПушистыйЕдинорог'
camelCase('foo bar');
//=> 'fooBar'
console.log(process.argv[3]);
//=> '--foo-bar'
camelCase(process.argv[3]);
//=> 'fooBar'
camelCase(['foo', 'bar']);
//=> 'fooBar'
camelCase(['__foo__', '--bar']);
//=> '__fooBar'
[!NOTE] Not idempotent when special characters are present.
camelCase('{ A')→'{A}', butcamelCase('{A}')→'{a}'.
Type: string | string[]
The string to convert to camel case.
Type: object
Type: boolean
Default: false
Uppercase the first character: foo-bar → FooBar
import camelCase from 'camelcase';
camelCase('foo-bar', {pascalCase: true});
//=> 'FooBar'
camelCase('foo-bar', {pascalCase: false});
//=> 'fooBar'
Type: boolean
Default: false
Preserve consecutive uppercase characters: foo-BAR → FooBAR
import camelCase from 'camelcase';
camelCase('foo-BAR', {preserveConsecutiveUppercase: true});
//=> 'fooBAR'
camelCase('foo-BAR', {preserveConsecutiveUppercase: false});
//=> 'fooBar'
Type: boolean
Default: true
Controls whether letters immediately following digits are treated as word boundaries.
When true (default):
Capitalize the first letter immediately following a numeric sequence, unless a separator intervenes. This aligns with most utilities, such as Lodash.
When false:
Do not treat digits as word boundaries. Preserve the original case of letters immediately following digits. Separators still create word boundaries. This follows the Google Java Style Guide which treats numbers as non-boundary characters.
import camelCase from 'camelcase';
camelCase('foo2bar', {capitalizeAfterNumber: true});
//=> 'foo2Bar' (capitalizes 'b' after digit)
camelCase('foo2bar', {capitalizeAfterNumber: false});
//=> 'foo2bar' (preserves lowercase 'b')
// Preserves original case after numbers when false
camelCase('Textures_3d', {capitalizeAfterNumber: false});
//=> 'textures3d' (preserves lowercase 'd')
camelCase('Textures_3D', {capitalizeAfterNumber: false});
//=> 'textures3D' (preserves uppercase 'D')
// Separators still create boundaries
camelCase('foo_2_bar', {capitalizeAfterNumber: false});
//=> 'foo2Bar' ('bar' follows separator, not digit)
Type: false | string | string[]
Default: The host environment’s current locale.
The locale parameter indicates the locale to be used to convert to upper/lower case according to any locale-specific case mappings. If multiple locales are given in an array, the best available locale is used.
import camelCase from 'camelcase';
camelCase('lorem-ipsum', {locale: 'en-US'});
//=> 'loremIpsum'
camelCase('lorem-ipsum', {locale: 'tr-TR'});
//=> 'loremİpsum'
camelCase('lorem-ipsum', {locale: ['en-US', 'en-GB']});
//=> 'loremIpsum'
camelCase('lorem-ipsum', {locale: ['tr', 'TR', 'tr-TR']});
//=> 'loremİpsum'
Setting locale: false ignores the platform locale and uses the Unicode Default Case Conversion algorithm:
import camelCase from 'camelcase';
// On a platform with `tr-TR`.
camelCase('lorem-ipsum');
//=> 'loremİpsum'
camelCase('lorem-ipsum', {locale: false});
//=> 'loremIpsum'
A package that provides various case conversion utilities including camel case, snake case, pascal case, and more. It offers more comprehensive case conversion options compared to camelcase.
A package that converts a string to camel case. It is similar to camelcase but is a smaller package with fewer features and customization options.
This package is designed to convert strings to param case (kebab case). While it serves a different purpose, it is related in the sense that it deals with string case conversion, just like camelcase.
FAQs
Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`
The npm package camelcase receives a total of 118,907,074 weekly downloads. As such, camelcase popularity was classified as popular.
We found that camelcase demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.