@stdlib/esm
Version:
ES module distribution for Stdlib, a standard library for JavaScript and Node.js.
3 lines • 2.25 kB
JavaScript
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0
import e from"./../assert/is-string.js";import t from"./../string/ends-with.js";import i from"./../string/lowercase.js";import s from"./../string/replace.js";var a=e.isPrimitive,n=t,l=i,o=s,r={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},c={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},u="[^aeiou]",$="[aeiouy]",g=u+"[^aeiouy]*",m=$+"[aeiou]*",p=new RegExp("^"+g+$+"[^aeiouwxy]$"),x="^("+g+")?"+m+g,v=new RegExp(x),b="^("+g+")?"+m+g+"("+m+")?$",f=new RegExp(b),w="^("+g+")?"+m+g+m+g,z=new RegExp(w),y="^("+g+")?"+$,E=new RegExp(y),R=/^(.+?)(ss|i)es$/,d=/^(.+?)([^s])s$/,j=/^(.+?)eed$/,h=/^(.+?)(ed|ing)$/,C=/^(.+?)y$/,F=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,L=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,P=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,T=/^(.+?)(s|t)(ion)$/,U=/^(.+?)e$/,V=/.$/,k=/(at|bl|iz)$/,q=new RegExp("([^aeiouylsz])\\1$");function A(e){var t,i,s,u;if(!a(e))throw new TypeError("invalid argument. First argument must be a string primitive. Value: `"+e+"`.");return e.length<3||("y"===(t=(e=l(e))[0])&&(e=t.toUpperCase()+e.substr(1)),R.test(e)?e=o(e,R,"$1$2"):d.test(e)&&(e=o(e,d,"$1$2")),j.test(e)?(u=j.exec(e),v.test(u[1])&&(e=o(e,V,""))):h.test(e)&&(s=(u=h.exec(e))[1],E.test(s)&&(e=s,k.test(e)?e+="e":q.test(e)?e=o(e,V,""):p.test(e)&&(e+="e"))),C.test(e)&&(s=(u=C.exec(e))[1],E.test(s)&&(e=s+"i")),F.test(e)&&(s=(u=F.exec(e))[1],i=u[2],v.test(s)&&(e=s+r[i])),L.test(e)&&(s=(u=L.exec(e))[1],i=u[2],v.test(s)&&(e=s+c[i])),P.test(e)?(s=(u=P.exec(e))[1],z.test(s)&&(e=s)):T.test(e)&&(s=(u=T.exec(e))[1]+u[2],z.test(s)&&(e=s)),U.test(e)&&(s=(u=U.exec(e))[1],(z.test(s)||f.test(s)&&!p.test(s))&&(e=s)),n(e,"ll")&&z.test(e)&&(e=o(e,V,"")),"y"===t&&(e=t.toLowerCase()+e.substr(1))),e}var B=A;export default B;
//# sourceMappingURL=porter-stemmer.js.map