UNPKG

@botonic/plugin-contentful

Version:

Botonic Plugin Contentful is one of the **[available](https://github.com/hubtype/botonic/tree/master/packages)** plugins for Botonic. **[Contentful](http://www.contentful.com)** is a CMS (Content Management System) which manages contents of a great variet

123 lines 5.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stemmerFor = void 0; const tslib_1 = require("tslib"); const util_1 = require("../util"); const locales = tslib_1.__importStar(require("./locales")); const locales_1 = require("./locales"); // see https://github.com/axa-group/nlp.js/blob/HEAD/docs/language-support.md // and https://stackoverflow.com/a/11210358/145289 // snowball algorithm inspired from https://github.com/MihaiValentin/lunr-languages, based on // https://github.com/fortnightlabs/snowball-js/blob/master/stemmer/src/ext/SpanishStemmer.js based on // java version at http://snowball.tartarus.org/download.html const stemmers = new util_1.SingletonMap({ [locales.CATALAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerCa = require('@nlpjs/lang-ca/src/stemmer-ca'); return new StemmerCa(); }, [locales.ENGLISH]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerEn = require('@nlpjs/lang-en-min/src/stemmer-en'); return new StemmerEn(); }, [locales.SPANISH]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerEs = require('@nlpjs/lang-es/src/stemmer-es'); return new StemmerEs(); }, [locales.POLISH]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerPl = require('@nlpjs/lang-pl/src/stemmer-pl'); return new StemmerPl(); }, [locales.PORTUGUESE]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerPt = require('@nlpjs/lang-pt/src/stemmer-pt'); return new StemmerPt(); }, [locales.RUSSIAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerRu = require('@nlpjs/lang-ru/src/stemmer-ru'); return new StemmerRu(); }, [locales.TURKISH]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerTr = require('@nlpjs/lang-tr/src/stemmer-tr'); return new StemmerTr(); }, [locales.ITALIAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerIt = require('@nlpjs/lang-it/src/stemmer-it'); return new StemmerIt(); }, [locales.FRENCH]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerFr = require('@nlpjs/lang-fr/src/stemmer-fr'); return new StemmerFr(); }, [locales.GERMAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerDe = require('@nlpjs/lang-de/src/stemmer-de'); return new StemmerDe(); }, [locales.ROMANIAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerRo = require('@nlpjs/lang-ro/src/stemmer-ro'); return new StemmerRo(); }, [locales.GREEK]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerEl = require('@nlpjs/lang-el/src/stemmer-el'); return new StemmerEl(); }, [locales.CZECH]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerCs = require('@nlpjs/lang-cs/src/stemmer-cs'); return new StemmerCs(); }, [locales.UKRAINIAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires,node/no-missing-require const { StemmerUk } = require('./stemmers/stemmer-uk'); return new StemmerUk(); }, [locales.CROATIAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires,node/no-missing-require const { StemmerHr } = require('./stemmers/stemmer-hr'); return new StemmerHr(); }, [locales.SLOVAK]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires,node/no-missing-require const { StemmerSk } = require('./stemmers/stemmer-sk'); return new StemmerSk(); }, [locales.SLOVENIAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerSl = require('@nlpjs/lang-sl/src/stemmer-sl'); return new StemmerSl(); }, [locales.HUNGARIAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerHu = require('@nlpjs/lang-hu/src/stemmer-hu'); return new StemmerHu(); }, [locales.DUTCH]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires const StemmerNl = require('@nlpjs/lang-nl/src/stemmer-nl'); return new StemmerNl(); }, [locales.BULGARIAN]: () => { // eslint-disable-next-line @typescript-eslint/no-var-requires,node/no-missing-require const { StemmerBg } = require('./stemmers/stemmer-bg'); return new StemmerBg(); }, }); function stemmerFor(locale) { const stem = stemmers.value((0, locales_1.languageFromLocale)(locale)); if (!stem) { throw new Error(`No stemmer configured for locale '${locale}'`); } return stem; } exports.stemmerFor = stemmerFor; //# sourceMappingURL=stemmer.js.map