/casex

All in one function for transforming word casings

Primary LanguageJavaScriptMIT LicenseMIT

casex

All in one function for transforming word casings

npm version Build Status code style: prettier Maintainability Test Coverage

Install

📦 275B gziped

npm install --save casex

or https://unpkg.com/casex

Usage

import casex from 'casex';

casex(text, pattern);

How the pattern works

For casex any character that is not a letter (accents are not letters for javascript) is a breakpoint.

In this example: Ca_se

  • C: first letter of the first word
  • a: second and subsequent letters of the first word
  • _: anything between the first two and last two letters is glue and will be repeted between words
  • s: first letter of the second and subsequent words
  • e: second and subsequent letters of the second and subsequent words

Confusing? Check out the demo and/or examples below. I'm sure you'll get the hang of it :)

Note: You could use any other letters to describe, such as aa$aa or na_me. What matters is that it takes the first two and last two letters for checking capitalization and whatever is in the middle is "glue".

Examples

For these examples I'll use the text i_am the-real JohnDoe

lowercase

  • Pattern: case
  • Output: iamtherealjohndoe

UPPERCASE

  • Pattern: CASE
  • Output: IAMTHEREALJOHNDOE

snake_case

  • Pattern: ca_se
  • Output: i_am_the_real_john_doe

spinal-case

  • Pattern: ca-se
  • Output: i-am-the-real-john-doe

camelCase

  • Pattern: caSe
  • Output: iAmTheRealJohnDoe

UpperCamelCase

  • Pattern: CaSe
  • Output: IAmTheRealJohnDoe

Sentence case

  • Pattern: Ca se
  • Output: I am the real john doe

Title Case

  • Pattern: Ca Se
  • Output: I Am The Real John Doe

Motivation

casex is part of a scaffolding tool I'm building and I decided to publish it separetely. The scaffolding tool will be linked here once it's out :)

Resources