From d9364679a51ff80db8e5948ab089d749da36a6b2 Mon Sep 17 00:00:00 2001 From: Geo Halkiadakis Date: Wed, 17 Apr 2024 18:32:13 +0300 Subject: dockerize the app --- utils/kb-util.js | 88 -------------------------------------------------------- 1 file changed, 88 deletions(-) delete mode 100644 utils/kb-util.js (limited to 'utils/kb-util.js') diff --git a/utils/kb-util.js b/utils/kb-util.js deleted file mode 100644 index aac88f9..0000000 --- a/utils/kb-util.js +++ /dev/null @@ -1,88 +0,0 @@ -/** - * fast string manipulation utilities - * for bi-lingual (EL/EN) words/phrases - * based on the keyboard layout - */ - -// suplamentary arrays (mostly for cache) -// --- -- -- - - - - -var ORiGiNal = 'ςερτυθιοπασδφγηξκλζχψωβνμΕΡΤΥΘΙΟΠΑΣΔΦΓΗΞΚΛΖΧΨΩΒΝΜάέήίόύώϊΐϋΆΈΉΊΌΎΏΪΫQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm0123456789- '.split(''); - -var kbKeyZed = 'sertyuiopasdfghjklzxcvbnmertyuiopasdfghjklzxcvbnmaehioyviiyaehioyviyqwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm0123456789- '.split(''); - -var map = new Map(); -for (var i=0; i { - ap = pair.split(' '); - accented_vowels.push({ - a: ap[0], // accented - p: ap[1] // pure = non accended - }); -}); - - -// translates string to keyboard-latin keys -// (the ones that used whan typing each letter of the word) -const 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 += map.get(str[i]); - return out; -} - -// keyboardize an array of strings -const keyb_array = (arr) => { - kb_arr = []; - arr.forEach( w => { - kb_arr.push(keyboardize(w)); - }); - return kb_arr; -} - - -// transforms to lowercase; handles sigma-teliko -const sanitizeGR = (str) => { - str = str.toLowerCase(); - - // replace accended vowels with pure ones - accented_vowels.forEach( v => { - str = str.replaceAll(v.a, v.p); - }); - - // replace sigma on the end of words - str = str + ' '; - str = str.replaceAll('σ-', 'ς-'); - str = str.replaceAll('σ ', 'ς '); - - return str; -} - -// removes non keyword characters [+ . , !] and internal multiple-spaces -// @param txt (string): product description -const clean = (txt) => { - return txt.replace('+',' ').replace('.',' ').replace(',',' ') // change to space - .replace('!','').replace('\"', '') // remove character - .replace(' ',' ').replace(' ',' '); // remove multiple spaces -} - - -// exports -// --- -- -- - - - - -module.exports = { - keyboardize, - keyb_array, - sanitizeGR, - clean -}; \ No newline at end of file -- cgit v1.2.3