@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
JavaScript
;
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