__ __ __ _
/ /__ ____ ____ / /_ _____ ____ _ _____ / /_ (_) ____ ____ _____
/ //_/ / __ \ / __ \ / __/ / ___/ / __ `/ / ___/ / __/ / / / __ \ / __ \ / ___/
/ ,< / /_/ / / / / // /_ / / / /_/ / / /__ / /_ / / / /_/ / / / / / (__ )
/_/|_| \____/ /_/ /_/ \__/ /_/ \__,_/ \___/ \__/ /_/ \____/ /_/ /_/ /____/
A small javascript library for converting to and fro' contractions.
Install
npm i --save kontractions
or yarn add kontractions
Basic Usage
ES6
import kontractions from 'kontractions'
Node Modules
const kontractions = require('kontractions')
API
kontractions.contract(string)
: Converts a string containing longforms to a string containing contractions.kontractions.expand(string)
: Converts a string containing contractions to a string containing longforms, or the various possible longforms.kontractions.updateContractions(object)
: Accepts an object and can be used for extending, modifying, or disabling the built-in default contractions.kontractions.updateLongforms(object)
: Accepts an object and can be used for extending, modifying, or disabling the built-in default longforms.
Examples
kontractions.contract("I did not do it.")
//=> i didn't do it.kontractions.expand("I didn't do it.")
//=> i did not do it.kontractions.expand("I hope there's more food.")
//=> i hope (( there has || there is )) more food.kontractions.updateContractions({"they'd've": ['they would have']})
//=> The contraction they'd've will now be recognized when using thecontract
method.kontractions.updateLongforms({"they would have": "they'd've"})
//=> The longform they would have will now be recognized when using theexpand
method.kontractions.updateContractions({"they'd've": ['they would have']})
//=> Pass a falsy value to disable a contraction.kontractions.updateLongforms({"they would have": false})
//=> Pass a falsy value to disable a longform.
Defaults
Philosophy
This library aims to one thing and do it well. With regards to the expand
method, while it would be possible to examine the context in which contractions are used to determine the proper expansion, that will likely remain beyond the scope of this package. Therefore, consumers will need to implement their own logic to examine the output and pick the correct expansion.
Contributions
All contributors will receive proper attribution, as outlined in the awesome All-Contributors specification developed by open-source superstar Kent C. Dodds.
Development Setup
This project was bootstrapped with Babel Starter Kit. To get started with development, fork this repo and make edits to the src
directory. Install dependencies with npm install
or yarn
. Run tests with npm test
.
License
kontractions is available under MIT. See LICENSE for more details.
To-do
- Add option to enable 3-word+ contractions