UNPKG

qwerty-dubeolsik

Version:

⌨ This library allows you to easily convert Korean keys to English or English keys to Korean on a QWERTY keyboard.

2 lines (1 loc) 4.08 kB
"use strict";var R=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var F=Object.prototype.hasOwnProperty;var b=(s,t)=>{for(var r in t)R(s,r,{get:t[r],enumerable:!0})},O=(s,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let c of w(t))!F.call(s,c)&&c!==r&&R(s,c,{get:()=>t[c],enumerable:!(n=E(t,c))||n.enumerable});return s};var k=s=>O(R({},"__esModule",{value:!0}),s);var N={};b(N,{checkConsonant:()=>x,convertEngKeyToKorKey:()=>C,convertEngToKor:()=>z,convertKorToEng:()=>L,finalConsonants:()=>K,initialConsonants:()=>g,qwertyEngKeys:()=>a,qwertyKorKeys:()=>p,unicodeKoreanChars:()=>j});module.exports=k(N);var j={\u1107:"\u3142",\u110C:"\u3148",\u1103:"\u3137",\u1100:"\u3131",\u1109:"\u3145",\u116D:"\u315B",\u1167:"\u3155",\u1163:"\u3151",\u1162:"\u3150",\u1166:"\u3154",\u1106:"\u3141",\u1102:"\u3134",\u110B:"\u3147",\u1105:"\u3139",\u1112:"\u314E",\u1169:"\u3157",\u1165:"\u3153",\u1161:"\u314F",\u1175:"\u3163",\u110F:"\u314B",\u1110:"\u314C",\u110E:"\u314A",\u1111:"\u314D",\u1172:"\u3160",\u116E:"\u315C",\u1173:"\u3161",\u1108:"\u3143",\u110D:"\u3149",\u1104:"\u3138",\u1101:"\u3132",\u110A:"\u3146",\u1164:"\u3152",\u1168:"\u3156",\u116A:"\u3158",\u116B:"\u3159",\u116C:"\u315A",\u116F:"\u315D",\u1170:"\u315E",\u1171:"\u315F",\u1174:"\u3162",\u11A8:"\u3131",\u11A9:"\u3132",\u11AB:"\u3134",\u11AE:"\u3137",\u11AF:"\u3139",\u11B7:"\u3141",\u11B8:"\u3142",\u11BA:"\u3145",\u11BB:"\u3146",\u11BC:"\u3147",\u11C2:"\u314E",\u11BD:"\u3148",\u11BE:"\u314A",\u11BF:"\u314B",\u11C0:"\u314A",\u11C1:"\u314D",\u3138:"\u3138",\u3149:"\u3149"},p={q:"\u1107",w:"\u110C",e:"\u1103",r:"\u1100",t:"\u1109",y:"\u116D",u:"\u1167",i:"\u1163",o:"\u1162",p:"\u1166",a:"\u1106",s:"\u1102",d:"\u110B",f:"\u1105",g:"\u1112",h:"\u1169",j:"\u1165",k:"\u1161",l:"\u1175",z:"\u110F",x:"\u1110",c:"\u110E",v:"\u1111",b:"\u1172",n:"\u116E",m:"\u1173",Q:"\u1108",W:"\u110D",E:"\u1104",R:"\u1101",T:"\u110A",O:"\u1164",P:"\u1168"},a=Object.entries(p).reduce((s,[t,r])=>(s[r]=t,s),{}),g={\u11A8:"\u1100",\u11A9:"\u1101",\u11AB:"\u1102",\u11AE:"\u1103",\u11AF:"\u1105",\u11B7:"\u1106",\u11B8:"\u1107",\u11BA:"\u1109",\u11BB:"\u110A",\u11BC:"\u110B",\u1112:"\u11C2",\u11BD:"\u110C",\u11BE:"\u110E",\u11BF:"\u110F",\u11C0:"\u1110",\u11C1:"\u1111",\u3138:"\u1104",\u3149:"\u110D",\u1108:""},K=Object.entries(g).reduce((s,[t,r])=>(s[r]=t,s),{}),y={\u1100\u1109:"\u11B3",\u1102\u110C:"\u11AC",\u1102\u1112:"\u11AD",\u1105\u1100:"\u11B0",\u1105\u1106:"\u11B1",\u1105\u1107:"\u11B2",\u1105\u1109:"\u11B3",\u1105\u1110:"\u11B4",\u1105\u1111:"\u11B5",\u1105\u1112:"\u11B6",\u1107\u1109:"\u11B9"},m=Object.entries(y).reduce((s,[t,r])=>(s[r]=t,s),{}),v={\u1169\u1161:"\u116A",\u1169\u1162:"\u116B",\u1169\u1175:"\u116C",\u116E\u1165:"\u116F",\u116E\u1166:"\u1170",\u116E\u1175:"\u1171",\u1173\u1175:"\u1174"},d=Object.entries(v).reduce((s,[t,r])=>(s[r]=t,s),{}),x=s=>s in K||s in g,C=s=>s in p?p[s]:s.toLowerCase()in p?p[s.toLowerCase()]:s.toUpperCase()in p?p[s.toUpperCase()]:s,z=s=>{let t=[];for(let n=0;n<s.length;n+=1){let c=s[n],i=!1,o=!1;if(n>0){let l=s[n-1],h=C(l);i=x(h)}if(s.length-1!==n){let l=s[n+1],h=C(l);o=x(h)}let e=C(c),u=x(e);if(u===!1&&o===!1&&s.length-1>n){let l=s[n+1],h=C(l),f=v[e+h];f?(t.push(f),n+=1):t.push(e)}else if(i===!1&&u&&o&&n>0){let l=s[n+1],h=C(l),f=y[e+h];f?(t.push(f),n+=1):t.push(K[e]||e)}else n===s.length-1&&u?t.push(K[e]||e):t.push(e)}return[...t.join("").normalize("NFC")].map(n=>j[n]||n).join("")},L=s=>{let t=[],r=s.normalize("NFKD").split(""),n=[];r.forEach(i=>{i in d?d[i].split("").forEach(o=>{n.push(o)}):n.push(i)});for(let i=0;i<n.length;i+=1){let o=n[i];if(o in a)t.push(a[o]);else if(o in g){let e=g[o];t.push(a[e])}else if(o in m){let[e,u]=m[o].split("");t.push(a[e]),t.push(a[u])}else if(o in d){let[e,u]=d[o].split("");t.push(a[e]),t.push(a[u])}else t.push(o)}return[...t.join("").normalize("NFC")].map(i=>j[i]||i).join("")};0&&(module.exports={checkConsonant,convertEngKeyToKorKey,convertEngToKor,convertKorToEng,finalConsonants,initialConsonants,qwertyEngKeys,qwertyKorKeys,unicodeKoreanChars});