@technobuddha/library
Version:
A large library of useful functions
24 lines (22 loc) • 776 B
text/typescript
import { capitalize } from './capitalize.ts';
import { removeDiacritics } from './remove-diacritics.ts';
import { tokenize } from './tokenize.ts';
import { empty } from './unicode.ts';
/**
* Convert an identifier string to a camel case
* @param input - The identifier string
* @returns string in camel case
* @group Programming
* @category Variables
* @example
* ```typescript
* camelCase('hello world'); // 'helloWorld'
* camelCase('Hello World'); // 'helloWorld'
* camelCase('foo_bar-baz'); // 'fooBarBaz'
* camelCase('FOO BAR'); // 'fooBar'
* ```
*/
export function camelCase(input: string): string {
const [first, ...rest] = tokenize(removeDiacritics(input));
return `${first.toLowerCase()}${rest.map((r) => capitalize(r.toLowerCase())).join(empty)}`;
}