english-verbs-helper
Version:
English verbs conjugation
69 lines (47 loc) • 3.15 kB
Markdown
<!--
Copyright 2019 Ludan Stoecklé
SPDX-License-Identifier: CC-BY-4.0
-->
# English verbs conjugation
## Features
Agreement of English verbs, based on a few rules and on linguistic resources.
You have to import and provide independently linguistic resources:
- use `english-verbs-irregular` for a list of irregular verbs (with their preterit and past participle)
- use `english-verbs-gerunds` for a list of irregular gerunds (`ing`)
These resources are not declared as dependencies so that they are not automatically bundled in a browser package.
If you do not provide linguistic resources, very basic rules will be used: adding `ing` for gerunds, and `ed` for past and participles.
## Usage
`getConjugation` will return the conjugated verb based on:
- information about irregular verbs (preteric, past participle and gerund):
- you can just put `null` if you don't care about irregular verbs, or if your tenses don't require them (only `SIMPLE_PRESENT` and `SIMPLE_FUTURE`)
- other provide irregular verbs info, using `english-verbs-irregular`, and/or `english-verbs-gerunds`, using the provided helper `mergeVerbsData`
- the verb as a string
- the tense
- the person: 0=I, 1=you (singular), 2=he/she/it, 3=we, 4=you (plural), 5=they.
- `ExtraParams`:
- for `SIMPLE_FUTURE`, you can add `{ GOING_TO: true }` to trigger the _going to_ form; default is `{ WILL: true }`
- use `{ NEGATIVE: true }` to trigger the negative form; additionnaly add `CONTRACT: true` to get the contracted version (will not => won't, etc.); when using the verb `to have`, you can choose whether to generate `hasn't` or `does not have` using `NO_DO: true`
Available tenses are: `SIMPLE_PAST` (or `PAST`), `SIMPLE_PRESENT` (or `PRESENT`), `SIMPLE_FUTURE` (or `FUTURE`), `PROGRESSIVE_PAST`, `PROGRESSIVE_PRESENT`, `PROGRESSIVE_FUTURE`, `PERFECT_PAST`, `PERFECT_PRESENT`, `PERFECT_FUTURE`, `PERFECT_PROGRESSIVE_PAST`, `PERFECT_PROGRESSIVE_PRESENT`, `PERFECT_PROGRESSIVE_FUTURE`.
`mergeVerbsData` will simply combine irregular verbs info and gerunds, to be used in `getConjugation`. In practice you will have `swim: ['swam', 'swum', 'swimming']`, here combining an irregular preterit, past participle and gerund. Parameters:
- `VerbsIrregularInfo`: use `english-verbs-irregular`, or null (irregular verbs are only required for some tenses)
- `GerundsInfo`: use `english-verbs-gerunds`, or null (gerunds are only required for some tenses)
## Limitations
- no interrogative form
- modals
## Installation
```sh
npm install english-verbs-helper
```
## Usage
```javascript
const EnglishVerbs = require('english-verbs-helper');
const Irregular = require('english-verbs-irregular/dist/verbs.json');
const Gerunds = require('english-verbs-gerunds/dist/gerunds.json');
const VerbsData = EnglishVerbs.mergeVerbsData(Irregular, Gerunds);
// (he/she) eats
console.log(EnglishVerbs.getConjugation(null, 'eat', 'PRESENT', 2));
// (he/she) ate
console.log(EnglishVerbs.getConjugation(VerbsData, 'eat', 'SIMPLE_PAST', 2));
// swimming
console.log(EnglishVerbs.getIngPart(VerbsData, 'swim'));
```