@enonic/js-utils
Version:
Enonic XP JavaScript Utils
64 lines (63 loc) • 1.79 kB
JavaScript
// string/unStem.ts
function unStemEnglish(word) {
return ["arsen", "commun", "gener", "'s'", "'s", "ied", "s", "ies", "sses", "ss", "us", "", "bb", "dd", "ff", "gg", "bl", "mm", "nn", "pp", "rr", "at", "tt", "iz", "ed", "eed", "ing", "edly", "eedly", "ingly", "anci", "enci", "ogi", "li", "bli", "abli", "alli", "fulli", "lessli", "ousli", "entli", "aliti", "biliti", "iviti", "tional", "ational", "alism", "ation", "ization", "izer", "ator", "iveness", "fulness", "ousness", "icate", "ative", "alize", "iciti", "ical", "tional", "ational", "ful", "ness", "ic", "ance", "ence", "able", "ible", "ate", "ive", "ize", "iti", "al", "ism", "ion", "er", "ous", "ant", "ent", "ment", "ement", "e", "l", "succeed", "proceed", "exceed", "canning", "inning", "earring", "herring", "outing", "andes", "atlas", "bias", "cosmos", "dying", "early", "gently", "howe", "idly", "lying", "news", "only", "singly", "skies", "skis", "sky", "tying", "ugly"].map((post) => `${word}${post}`);
}
function unStemNorwegian(word) {
return [
"a",
"e",
"ede",
"ande",
"ende",
"ane",
"ene",
"hetene",
"erte",
"en",
"heten",
"ar",
"er",
"heter",
"s",
"as",
"es",
"edes",
"endes",
"enes",
"hetenes",
"ens",
"hetens",
"ers",
"ets",
"et",
"het",
"ert",
"ast",
"dt",
"vt",
"leg",
"eleg",
"ig",
"eig",
"lig",
"elig",
"els",
"lov",
"elov",
"slov",
"hetslov"
].map((post) => `${word}${post}`);
}
function unStem(word, language) {
switch (language) {
case "en":
return unStemEnglish(word);
case "no":
return unStemNorwegian(word);
default:
throw new Error(`Unsupported lanugage:${language}`);
}
}
export {
unStem
};