Camel case
Convert a dash/dot/underscore/space separated string to camelCase or PascalCase.
Correctly handles unicode strings.
If you use this on untrusted user input, don’t forget to limit the length to something reasonable.
Based on the Sindre Sorhus Camelcase Module, they have the same test suite and API, but this version is more than 3 times faster, see the benchmarks below!
Usage
The API is the same on all this platforms ✔️
Deno 🦕
import { camelcase } from "https://deno.land/x/camelcase/mod.ts";
camelCase("foo-bar"); //=> 'fooBar'
camelCase("foo_bar"); //=> 'fooBar'
camelCase("Foo-Bar"); //=> 'fooBar'
camelCase("розовый_пушистый_единорог"); //=> 'розовыйПушистыйЕдинорог'
camelCase("Foo-Bar", { pascalCase: true }); //=> 'FooBar'
camelCase("--foo.bar", { pascalCase: false }); //=> 'fooBar'
camelCase("Foo-BAR", { preserveConsecutiveUppercase: true }); //=> 'fooBAR'
camelCase("fooBAR", { pascalCase: true, preserveConsecutiveUppercase: true }); //=> 'FooBAR'
camelCase("foo bar"); //=> 'fooBar'
camelCase(["foo", "bar"]); //=> 'fooBar'
camelCase(["__foo__", "--bar"], { pascalCase: true }); //=> 'FooBar'
camelCase(["foo", "BAR"], {
pascalCase: true,
preserveConsecutiveUppercase: true,
}); //=> 'FooBAR'
camelCase("lorem-ipsum", { locale: "en-US" }); //=> 'loremIpsum'
Node.js 🐢🚀
import { camelCase } from "@ultirequiem/camelcase";
Browser 🌐
You can use any CDN 🔥
Eg 👉 ESM ↔️ SkyPack 🆚 Script Tag ↔️ JSDelivr
Documentation
Is hosted on Deno Doc 📄
Benchmarks
Check the benchmark code on bench.ts
⚡
benchmark time (avg) (min … max) p75 p99 p995
------------------------------------------------------------ -----------------------------
Sindre Sorhus Module 257.01 µs/iter (237.4 µs … 382.3 µs) 252.9 µs 331.5 µs 339.9 µs
This Module 78 µs/iter (67.6 µs … 214.9 µs) 78.1 µs 152.6 µs 155.1 µs
summary
This Module
3.29x times faster than Sindre Sorhus Module
Version 2.1.0
Benchmarks are run on GitHub Actions on each commit, you can see the latest runs here.
Support
Open an Issue, I will check it a soon as possible 👀
If you want to hurry me up a bit send me a tweet 😆
Consider supporting me on Patreon if you like my work 🙏
Don’t forget to start the repo ⭐
Authors
Eliaz Bobadilla - Creator and Maintainer 💪
See also the full list of contributors who participated in this project ✨
Versioning
We use Semantic Versioning. For the versions available, see the tags 🏷️
Licence
Licensed under the MIT License 📄