summaryrefslogtreecommitdiff
path: root/pieces/kbutils.js
diff options
context:
space:
mode:
Diffstat (limited to 'pieces/kbutils.js')
-rw-r--r--pieces/kbutils.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/pieces/kbutils.js b/pieces/kbutils.js
new file mode 100644
index 0000000..b8ae0ad
--- /dev/null
+++ b/pieces/kbutils.js
@@ -0,0 +1,25 @@
+/** keyboardize
+ * -------------------------------------------------------------------------
+ * translates string to keyboard-latin keys
+ * (the ones that used whan typing each letter of the word)
+ *
+ * @param str (string): original string (utf8 of latin or greek subgroups)
+ * @return (string): latin/ascii equivalent string
+ */
+
+_kbu = {
+ ORiGiNal:'ςερτυθιοπασδφγηξκλζχψωβνμΕΡΤΥΘΙΟΠΑΣΔΦΓΗΞΚΛΖΧΨΩΒΝΜάέήίόύώϊΐϋΆΈΉΊΌΎΏΪΫQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm0123456789- '.split(''),
+ kbKeyZed: 'sertyuiopasdfghjklzxcvbnmertyuiopasdfghjklzxcvbnmaehioyviiyaehioyviyqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm0123456789- '.split(''),
+ map: new Map()
+}
+for (var i=0; i<_kbu.ORiGiNal.length; i++) _kbu.map.set(_kbu.ORiGiNal[i], _kbu.kbKeyZed[i]);
+
+_kbu.keyboardize = (str) => {
+ str = str.replace('\'','');
+ var out = '';
+ // [map]'s implementation is 40x faster than [for]'s
+ for (var i=0 ; i< str.length; i++) out += _kbu.map.get(str[i]);
+ return out;
+}
+
+exports.keybutil = _kbu; \ No newline at end of file