UNPKG

latvian-grammar

Version:
3 lines (2 loc) 3.45 kB
var s=s=>e.includes(s),e="aAāĀeEēĒiIīĪoOōŌuUūŪ",i="bBcCčČdDfFgGģĢhHjJkKķĶlLļĻmMnNņŅpPrRŗŖsSšŠtTvVzZžŽ",t={masculine:"masculine",feminine:"feminine"},a=function(s,e){void 0===e&&(e=t.masculine);var i=s.substr(-1),a=s.substr(-2);if(e===t.masculine){if(l.includes(s))return n(2,"s",!0);if("ļaudis"===s)return n(6,"is",!0)}var o=e===t.masculine?r:u,v=o[a]?a:i;if(!o[v])throw Error("invalid word: "+s);return n(o[v],v)},n=function(s,e,i){return void 0===i&&(i=!1),{declensionCase:s,suffix:e,exception:i}},r={s:1,"š":1,is:2,us:3,a:4,e:5},u={a:4,e:5,s:6},l=["mēness","akmens","asmens","ūdens","rudens","zibens","suns","sāls"],o=(s,e)=>{var{declensionCase:i,suffix:t}=e,a=s.slice(0,-t.length);if(!v[i]||d[i].includes(s)||c[i].some(e=>s.endsWith(e)))return a;for(var[n,r]of m[i])if(a.endsWith(n))return""+a.slice(0,-n.length)+r},v={2:{dz:"dž",sn:"šņ",zn:"žņ",sl:"šļ",zl:"žļ",ln:"ļņ",b:"bj",m:"mj",p:"pj",v:"vj",t:"š",d:"ž",c:"č",s:"š",z:"ž",n:"ņ",l:"ļ"},5:{sn:"šņ",zn:"žņ",dz:"dž",kst:"kp",b:"bj",m:"mj",p:"pj",v:"vj",c:"č",t:"š",d:"ž",s:"š",z:"ž",n:"ņ",l:"ļ"},6:{sn:"šņ",st:"š",v:"vj",t:"š",d:"ž",s:"š",z:"ž",n:"ņ",l:"ļ"}},m=Object.fromEntries(Object.entries(v).map(s=>{var[e,i]=s;return[e,Object.entries(i)]})),c={2:["astis","jis","ķis","ģis","ris","skatis"],5:["aste","fe","ģe","ķe","mate","pēde","ste"]},d={2:["tētis","viesis"],5:["apaļmute","apšaude","balamute","balle (mērvienība)","bāze","bise","bote","brīze","flote","fronte","gāze (vielas stāvoklis)","gide","kase","kušete","mise","mute","pase","piešaude","planšete","rase","sarakste","šprote","takse","tirāde"],6:["acs","aktis","ass","auss","balss","brokastis","Cēsis","dakts","debess","dzelzs","kūts","maksts","pirts","šalts","takts (mūzikā)","uts","uzacs","valsts","vēsts","zoss","žults"]};for(var p of Array.from({length:6},(s,e)=>e+1))c[p]||(c[p]=[]),d[p]||(d[p]=[]);var f=(s,e)=>Object.fromEntries(Object.entries(s).map(e)),b=(s,e,i,t,a,n,r)=>({nominative:s,genitive:e,dative:i,accusative:t,instrumental:a,locative:n,vocative:r}),z=["nominative","genitive","dative","accusative","instrumental","locative","vocative"],g={2:["genitive-singular",...z.map(s=>s+"-plural")],5:["genitive-plural"],6:["genitive-plural"]};for(var j of Array.from({length:6},(s,e)=>e+1))g[j]||(g[j]=[]);var k={1:b("s","a","am","u","u","ā","s"),2:b("is","a","im","i","i","ī","i"),3:b("us","us","um","u","u","ū","us"),4:b("a","as","ai","u","u","ā","a"),5:b("e","es","ei","i","i","ē","e"),6:b("s","s","ij","i","i","ī","s")},x=b("i","u","iem","us","iem","os","i"),h={1:x,2:x,3:x,4:b("as","u","ām","as","ām","ās","as"),5:b("es","u","ēm","es","ēm","ēs","es"),6:b("is","u","īm","is","īm","īs","is")};exports.Declension=n,exports.consonants=i,exports.countSyllables=e=>{var i=[...e].map(s),t=i[0]?1:0;return i.reduce((s,e)=>(!s&&e&&(t+=1),e)),t},exports.decline=a,exports.genders=t,exports.inflect=function(s,e){void 0===e&&(e=t.masculine);var i=a(s,e),{suffix:n,declensionCase:r}=i,u=s.slice(0,-n.length),l=o(s,i),v=(s,e,i)=>{var t=g[r].includes(s+"-"+e)?l:u;return"instrumental"===s&&(t="ar "+t),[s,""+t+i]};return{declension:i,inflections:{plural:f(h[r],s=>{var[e,i]=s;return v(e,"plural",i)}),singular:f(k[r],s=>{var[e,i]=s;return v(e,"singular",i)})}}},exports.inflections=z,exports.isConsonant=s=>i.includes(s),exports.isVowel=s,exports.palatalize=o,exports.vowels=e; //# sourceMappingURL=latvian-grammar.js.map