JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 56
  • Score
    100M100P100Q67029F
  • License MIT

Check your text for grammar and spelling error using multiple providers

Package Exports

  • spech

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (spech) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

spech

Build Status NPM version

Check your text for grammar and spelling error using multiple providers.

  • Zero config
  • Multiple libraries/services support

Usage

npx spech

By default, it finds **/*.md files and checks it using en-US language.

Use -l flag to specify another language:

npx spech -l ru

Providers

Hunspell

Hunspell is the most popular open-source spell checker which supports a great variety of languages. The checker uses WebAssembly binding for hunspell hunspell-asm.

GrammarBot

Free grammar checking API. With an API key, you can receive 250 requests/day (7500/mo) at no cost. Without an API key, requests are limited to 100 per day per IP address (3000/mo). The API supports only English (en-US and en-GB).

If you need more that 100 request per day, register a new key and pass it to GrammarBot config:

{
  name: 'grammarBot',
  apiKey: 'YOUKEY,
}

Yandex Speller

Free and very fast spell checker API for en, ru and uk languages. It provides free 10k requests/day or 10m characters/day.

Configuring

You can store configuration in two places:

  • spech.config.js
  • "spech" section of the package.json

spech.config.js

module.exports = {
  languages: ['en-us'],
  providers: [
    { name: 'hunspell' },
    { name: 'grammarBot', apiKey: 'YOUR_API_KEY' },
  ],
};

More details.

Dictionaries

You can place words/phrases which is marked as error to your dictionary file. Just create a file with .dic extension to the project root:

mydictionary.dic

# Simple word
browserify
# Regexp
/Component.tsx?/

More details.

API Usage

The most useful parts of the library are available through facade class SpellChecker.

Here is a simple example how it can be used:

const { Config, SpellChecker } = require('spech');

async function getMistakes() {
  const config = new Config({ ignoreCase: false });
  const checker = new SpellChecker(config);

  await checker.addDocumentsByMask(process.cwd(), 'docs/*.md');
  checker.addDictionaryPhrase('exceptionphrase');
  checker.addProviderByConfig({ name: 'hunspell' });

  const noMistakes = await checker.checkDocuments();
  if (noMistakes) {
    return [];
  }
  
  const corrections = checker.documents.map(doc => doc.corrections).flat();
  return corrections.map(correction => correction.fragment);
}