smart-capitalize
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.4 • Public • Published

    npm version

    smart-capitalize

    Every time PayPal sends me an email, they start off by addressing me in the following way:

    Hi Gerard O'neill,

    Obviously, this is not how I type my name. My last name is spelled O'Neill with a capital N. However, PayPal doesn't trust me to spell my own name correctly, so it runs a rudimentary capitalization function on my name, which results in it being spelled incorrectly.

    This is why I made smart-capitalize.

    Examples

    It's a simple library with two functions:

    • capitalize()
    • capitalizeAll()

    capitalize is meant to be used for only a single word, while capitalizeAll is for use with multiple words, such as with a name or a sentence/title.

    The internal logic isn't super simple, but in practice, these functions will capitalize strings where there doesn't already exist an uppercase letter. Some examples:

    capitalize('hello') === 'Hello' // capitalized
    capitalize('this is a sentence.') === 'This is a sentence.' // capitalized first word only
    capitalize("O'Neill") === "O'Neill" // no change
    
    capitalizeAll('hello, how are you?') === 'Hello, How Are You?' // all words capitalized
    capitalizeAll("that guy looks like leonardo da vinci lol") === "That Guy Looks Like Leonardo Da Vinci Lol" // all words capitalized, though technically still not correct
    capitalizeAll("my name is Gerard O'Neill") === "my name is Gerard O'Neill" // no change
    

    Installation

    Using yarn:

    yarn add smart-capitalize
    

    Using npm:

    npm i -S smart-capitalize
    

    Usage

    import { capitalize, capitalizeAll } from 'smart-capitalize'
    
    console.log(capitalize('this is cool')) // 'This is cool'
    console.log(capitalizeAll('this is cool too')) // 'This Is Cool Too'
    

    I18n

    The functions also do their best to work with non-English/non-Latin alphabets. Some sacrifices were made because of JavaScript's lack of Unicode property escapes, but it should work fairly well.

    Disclaimer

    It's worth stating that these are not perfect functions. It's impossible to know what should be capitalized and what shouldn't be, algorithmically-speaking. I would prefer that you never try to capitalize anything like somebody's name, but if you absolutely must, then this will give you something fairly sane for people who couldn't bothered to use the Shift key while leaving the rest of our names alone.

    Install

    npm i smart-capitalize

    DownloadsWeekly Downloads

    94

    Version

    0.0.4

    License

    MIT

    Unpacked Size

    8.59 kB

    Total Files

    8

    Last publish

    Collaborators

    • grardb