Comparing version 1.0.0 to 2.0.0
@@ -0,1 +1,9 @@ | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } | ||
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } | ||
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } | ||
@@ -498,2 +506,3 @@ | ||
}; | ||
characters[1][' '] = options.space; | ||
characters[0] = characters[options.priority]; | ||
@@ -505,3 +514,3 @@ return options; | ||
var options = getOptions(opts); | ||
return text.replace(/\s+/g, '').toLocaleUpperCase().split('').map(function (character) { | ||
return _toConsumableArray(text.replace(/\s+/g, ' ').trim().toLocaleUpperCase()).map(function (character) { | ||
for (var set in characters) { | ||
@@ -514,3 +523,3 @@ if (typeof characters[set] !== 'undefined' && typeof characters[set][character] !== 'undefined') { | ||
return parseInt(options.priority) === 13 ? unicodeToMorse(character) : options.invalid; | ||
}).join(options.space).replace(/0/g, options.dot).replace(/1/g, options.dash); | ||
}).join(' ').replace(/0/g, options.dot).replace(/1/g, options.dash); | ||
}; | ||
@@ -521,3 +530,3 @@ | ||
swapped = swapCharacters(options); | ||
return morse.split(options.space).map(function (characters) { | ||
return morse.replace(/\s+/g, ' ').trim().split(' ').map(function (characters) { | ||
if (typeof swapped[characters] !== 'undefined') { | ||
@@ -528,3 +537,3 @@ return swapped[characters]; | ||
return parseInt(options.priority) === 13 ? unicodeToHex(characters, options) : options.invalid; | ||
}).join(' ').replace(/\s+/g, ' '); | ||
}).join(''); | ||
}; | ||
@@ -531,0 +540,0 @@ |
@@ -1,1 +0,1 @@ | ||
function _typeof(a){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}(function(a,b,c){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?module.exports=c():"function"==typeof define&&define.amd?define(c):b[a]=c()})("morsify",this,function(){"use strict";var a={1:{A:"01",B:"1000",C:"1010",D:"100",E:"0",F:"0010",G:"110",H:"0000",I:"00",J:"0111",K:"101",L:"0100",M:"11",N:"10",O:"111",P:"0110",Q:"1101",R:"010",S:"000",T:"1",U:"001",V:"0001",W:"011",X:"1001",Y:"1011",Z:"1100"},2:{0:"11111",1:"01111",2:"00111",3:"00011",4:"00001",5:"00000",6:"10000",7:"11000",8:"11100",9:"11110"},3:{".":"010101",",":"110011","?":"001100","'":"011110","!":"101011","/":"10010","(":"10110",")":"101101","&":"01000",":":"111000",";":"101010","=":"10001","+":"01010","-":"100001",_:"001101",'"':"010010",$:"0001001","@":"011010","¿":"00101","¡":"110001"},4:{Ã:"01101",Á:"01101",Å:"01101",À:"01101",Â:"01101",Ä:"0101",Ą:"0101",Æ:"0101",Ç:"10100",Ć:"10100",Ĉ:"10100",Č:"110",Đ:"00100",Ð:"00110",È:"01001",Ë:"00100",Ę:"00100",É:"00100",Ê:"10010",Ğ:"11010",Ĝ:"11010",Ĥ:"1111",İ:"01001",Ï:"10011",Ì:"01110",Ĵ:"01110",Ł:"01001",Ń:"11011",Ñ:"11011",Ó:"1110",Ò:"1110",Ö:"1110",Ô:"1110",Ø:"1110",Ś:"0001000",Ş:"01100",Ș:"1111",Š:"1111",Ŝ:"00010",ß:"000000",Þ:"01100",Ü:"0011",Ù:"0011",Ŭ:"0011",Ž:"11001",Ź:"110010",Ż:"11001"},5:{А:"01",Б:"1000",В:"011",Г:"110",Д:"100",Е:"0",Ж:"0001",З:"1100",И:"00",Й:"0111",К:"101",Л:"0100",М:"11",Н:"10",О:"111",П:"0110",Р:"010",С:"000",Т:"1",У:"001",Ф:"0010",Х:"0000",Ц:"1010",Ч:"1110",Ш:"1111",Щ:"1101",Ъ:"11011",Ы:"1011",Ь:"1001",Э:"00100",Ю:"0011",Я:"0101"},6:{Α:"01",Β:"1000",Γ:"110",Δ:"100",Ε:"0",Ζ:"1100",Η:"0000",Θ:"1010",Ι:"00",Κ:"101",Λ:"0100",Μ:"11",Ν:"10",Ξ:"1001",Ο:"111",Π:"0110",Ρ:"010",Σ:"000",Τ:"1",Υ:"1011",Φ:"0010",Χ:"1111",Ψ:"1101",Ω:"011"},7:{א:"01",ב:"1000",ג:"110",ד:"100",ה:"111",ו:"0",ז:"1100",ח:"0000",ט:"001",י:"00",כ:"101",ל:"0100",מ:"11",נ:"10",ס:"1010",ע:"0111",פ:"0110",צ:"011",ק:"1101",ר:"010",ש:"000",ת:"1"},8:{ا:"01",ب:"1000",ت:"1",ث:"1010",ج:"0111",ح:"0000",خ:"111",د:"100",ذ:"1100",ر:"010",ز:"1110",س:"000",ش:"1111",ص:"1001",ض:"0001",ط:"001",ظ:"1011",ع:"0101",غ:"110",ف:"0010",ق:"1101",ك:"101",ل:"0100",م:"11",ن:"10",ه:"00100",و:"011",ي:"00",ﺀ:"0"},9:{ا:"01",ب:"1000",پ:"0110",ت:"1",ث:"1010",ج:"0111",چ:"1110",ح:"0000",خ:"1001",د:"100",ذ:"0001",ر:"010",ز:"1100",ژ:"110",س:"000",ش:"1111",ص:"0101",ض:"00100",ط:"001",ظ:"1011",ع:"111",غ:"0011",ف:"0010",ق:"111000",ک:"101",گ:"1101",ل:"0100",م:"11",ن:"10",و:"011",ه:"0",ی:"00"},10:{ア:"11011",カ:"0100",サ:"10101",タ:"10",ナ:"010",ハ:"1000",マ:"1001",ヤ:"011",ラ:"000",ワ:"101",イ:"01",キ:"10100",シ:"11010",チ:"0010",ニ:"1010",ヒ:"11001",ミ:"00101",リ:"110",ヰ:"01001",ウ:"001",ク:"0001",ス:"11101",ツ:"0110",ヌ:"0000",フ:"1100",ム:"1",ユ:"10011",ル:"10110",ン:"01010",エ:"01000",ケ:"1011",セ:"01110",テ:"01011",ネ:"1101",ヘ:"0",メ:"10001",レ:"111",ヱ:"01100","、":"010101",オ:"10111",コ:"1111",ソ:"1110",ト:"00100",ノ:"0011",ホ:"100",モ:"10010",ヨ:"11",ロ:"0101",ヲ:"0111","。":"010100"},11:{ㄱ:"0100",ㄴ:"0010",ㄷ:"1000",ㄹ:"0001",ㅁ:"11",ㅂ:"011",ㅅ:"110",ㅇ:"101",ㅈ:"0110",ㅊ:"1010",ㅋ:"1001",ㅌ:"1100",ㅍ:"111",ㅎ:"0111",ㅏ:"0",ㅑ:"00",ㅓ:"1",ㅕ:"000",ㅗ:"01",ㅛ:"10",ㅜ:"0000",ㅠ:"010",ㅡ:"100",ㅣ:"001"},12:{ก:"110",ข:"1010",ค:"101",ง:"10110",จ:"10010",ฉ:"1111",ช:"1001",ซ:"1100",ญ:"0111",ด:"100",ต:"1",ถ:"10100",ท:"10011",น:"10",บ:"1000",ป:"0110",ผ:"1101",ฝ:"10101",พ:"01100",ฟ:"0010",ม:"11",ย:"1011",ร:"010",ล:"0100",ว:"011",ส:"000",ห:"0000",อ:"10001",ฮ:"11011",ฤ:"01011",ะ:"01000",า:"01","ิ":"00100","ี":"00","ึ":"00110","ื":"0011","ุ":"00101","ู":"1110",เ:"0",แ:"0101",ไ:"01001",โ:"111",ำ:"00010","่":"001","้":"0001","๊":"11000","๋":"01010","ั":"01101","็":"11100","์":"11001",ๆ:"10111",ฯ:"11010"}},b=function(b,c){var d=f(b),e={};for(var g in a)for(var h in e[g]={},a[g])e[g][h]=a[g][h].replace(/0/g,d.dot).replace(/1/g,d.dash);return!0!==c&&delete e[0],e},c=function(a){var c={},d=b(a,!0);for(var e in d)for(var f in d[e])"undefined"==typeof c[d[e][f]]&&(c[d[e][f]]=f);return c},d=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=("00"+a.charCodeAt(c).toString(16)).slice(-4);return parseInt(b.join(""),16).toString(2)},e=function(a,b){return a=a.replace(new RegExp("\\"+b.dot,"g"),"0").replace(new RegExp("\\"+b.dash,"g"),"1"),a=parseInt(a,2),isNaN(a)?b.invalid:decodeURIComponent(JSON.parse("\"\\u"+a.toString(16)+"\""))},f=function(b){return b=b||{},b.oscillator=b.oscillator||{},b={dash:b.dash||"-",dot:b.dot||".",space:b.space||"/",invalid:b.invalid||"#",priority:b.priority||1,unit:b.unit||.08,oscillator:{type:b.oscillator.type||"sine",frequency:b.oscillator.frequency||500,onended:b.oscillator.onended||null}},a[0]=a[b.priority],b},g=function(b,c){var e=f(c);return b.replace(/\s+/g,"").toLocaleUpperCase().split("").map(function(b){for(var c in a)if("undefined"!=typeof a[c]&&"undefined"!=typeof a[c][b])return a[c][b];return 13===parseInt(e.priority)?d(b):e.invalid}).join(e.space).replace(/0/g,e.dot).replace(/1/g,e.dash)},h="undefined"!=typeof window,i=h?window.AudioContext||window.webkitAudioContext:null,j=h?new i:null;return{characters:b,decode:function(a,b){var d=f(b),g=c(d);return a.split(d.space).map(function(a){return"undefined"==typeof g[a]?13===parseInt(d.priority)?e(a,d):d.invalid:g[a]}).join(" ").replace(/\s+/g," ")},encode:g,audio:function(a,b){var c,d=f(b),e=g(a,b),h=j.createOscillator(),k=j.createGain(),l=j.currentTime;h.type=d.oscillator.type,h.frequency.value=d.oscillator.frequency,h.onended=d.oscillator.onended,k.gain.setValueAtTime(0,l);for(var m=function(a){k.gain.setValueAtTime(1,l),l+=a*d.unit},n=function(a){k.gain.setValueAtTime(0,l),l+=a*d.unit},o=0;o<=e.length;o++)e[o]===d.space?n(7):e[o]===d.dot?(m(1),n(1)):e[o]===d.dash?(m(3),n(1)):n(3);h.connect(k),k.connect(j.destination);var p=function(){h.start(j.currentTime),c=setTimeout(function(){return q()},1e3*(l-j.currentTime))},q=function(){clearTimeout(c),c=0,h.stop(0)};return{play:p,stop:q,context:j,oscillator:h,gainNode:k}}}}); | ||
function _toConsumableArray(a){return _arrayWithoutHoles(a)||_iterableToArray(a)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(a){if(Symbol.iterator in Object(a)||"[object Arguments]"===Object.prototype.toString.call(a))return Array.from(a)}function _arrayWithoutHoles(a){if(Array.isArray(a)){for(var b=0,c=Array(a.length);b<a.length;b++)c[b]=a[b];return c}}function _typeof(a){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}(function(a,b,c){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?module.exports=c():"function"==typeof define&&define.amd?define(c):b[a]=c()})("morsify",this,function(){"use strict";var a={1:{A:"01",B:"1000",C:"1010",D:"100",E:"0",F:"0010",G:"110",H:"0000",I:"00",J:"0111",K:"101",L:"0100",M:"11",N:"10",O:"111",P:"0110",Q:"1101",R:"010",S:"000",T:"1",U:"001",V:"0001",W:"011",X:"1001",Y:"1011",Z:"1100"},2:{0:"11111",1:"01111",2:"00111",3:"00011",4:"00001",5:"00000",6:"10000",7:"11000",8:"11100",9:"11110"},3:{".":"010101",",":"110011","?":"001100","'":"011110","!":"101011","/":"10010","(":"10110",")":"101101","&":"01000",":":"111000",";":"101010","=":"10001","+":"01010","-":"100001",_:"001101",'"':"010010",$:"0001001","@":"011010","¿":"00101","¡":"110001"},4:{Ã:"01101",Á:"01101",Å:"01101",À:"01101",Â:"01101",Ä:"0101",Ą:"0101",Æ:"0101",Ç:"10100",Ć:"10100",Ĉ:"10100",Č:"110",Đ:"00100",Ð:"00110",È:"01001",Ë:"00100",Ę:"00100",É:"00100",Ê:"10010",Ğ:"11010",Ĝ:"11010",Ĥ:"1111",İ:"01001",Ï:"10011",Ì:"01110",Ĵ:"01110",Ł:"01001",Ń:"11011",Ñ:"11011",Ó:"1110",Ò:"1110",Ö:"1110",Ô:"1110",Ø:"1110",Ś:"0001000",Ş:"01100",Ș:"1111",Š:"1111",Ŝ:"00010",ß:"000000",Þ:"01100",Ü:"0011",Ù:"0011",Ŭ:"0011",Ž:"11001",Ź:"110010",Ż:"11001"},5:{А:"01",Б:"1000",В:"011",Г:"110",Д:"100",Е:"0",Ж:"0001",З:"1100",И:"00",Й:"0111",К:"101",Л:"0100",М:"11",Н:"10",О:"111",П:"0110",Р:"010",С:"000",Т:"1",У:"001",Ф:"0010",Х:"0000",Ц:"1010",Ч:"1110",Ш:"1111",Щ:"1101",Ъ:"11011",Ы:"1011",Ь:"1001",Э:"00100",Ю:"0011",Я:"0101"},6:{Α:"01",Β:"1000",Γ:"110",Δ:"100",Ε:"0",Ζ:"1100",Η:"0000",Θ:"1010",Ι:"00",Κ:"101",Λ:"0100",Μ:"11",Ν:"10",Ξ:"1001",Ο:"111",Π:"0110",Ρ:"010",Σ:"000",Τ:"1",Υ:"1011",Φ:"0010",Χ:"1111",Ψ:"1101",Ω:"011"},7:{א:"01",ב:"1000",ג:"110",ד:"100",ה:"111",ו:"0",ז:"1100",ח:"0000",ט:"001",י:"00",כ:"101",ל:"0100",מ:"11",נ:"10",ס:"1010",ע:"0111",פ:"0110",צ:"011",ק:"1101",ר:"010",ש:"000",ת:"1"},8:{ا:"01",ب:"1000",ت:"1",ث:"1010",ج:"0111",ح:"0000",خ:"111",د:"100",ذ:"1100",ر:"010",ز:"1110",س:"000",ش:"1111",ص:"1001",ض:"0001",ط:"001",ظ:"1011",ع:"0101",غ:"110",ف:"0010",ق:"1101",ك:"101",ل:"0100",م:"11",ن:"10",ه:"00100",و:"011",ي:"00",ﺀ:"0"},9:{ا:"01",ب:"1000",پ:"0110",ت:"1",ث:"1010",ج:"0111",چ:"1110",ح:"0000",خ:"1001",د:"100",ذ:"0001",ر:"010",ز:"1100",ژ:"110",س:"000",ش:"1111",ص:"0101",ض:"00100",ط:"001",ظ:"1011",ع:"111",غ:"0011",ف:"0010",ق:"111000",ک:"101",گ:"1101",ل:"0100",م:"11",ن:"10",و:"011",ه:"0",ی:"00"},10:{ア:"11011",カ:"0100",サ:"10101",タ:"10",ナ:"010",ハ:"1000",マ:"1001",ヤ:"011",ラ:"000",ワ:"101",イ:"01",キ:"10100",シ:"11010",チ:"0010",ニ:"1010",ヒ:"11001",ミ:"00101",リ:"110",ヰ:"01001",ウ:"001",ク:"0001",ス:"11101",ツ:"0110",ヌ:"0000",フ:"1100",ム:"1",ユ:"10011",ル:"10110",ン:"01010",エ:"01000",ケ:"1011",セ:"01110",テ:"01011",ネ:"1101",ヘ:"0",メ:"10001",レ:"111",ヱ:"01100","、":"010101",オ:"10111",コ:"1111",ソ:"1110",ト:"00100",ノ:"0011",ホ:"100",モ:"10010",ヨ:"11",ロ:"0101",ヲ:"0111","。":"010100"},11:{ㄱ:"0100",ㄴ:"0010",ㄷ:"1000",ㄹ:"0001",ㅁ:"11",ㅂ:"011",ㅅ:"110",ㅇ:"101",ㅈ:"0110",ㅊ:"1010",ㅋ:"1001",ㅌ:"1100",ㅍ:"111",ㅎ:"0111",ㅏ:"0",ㅑ:"00",ㅓ:"1",ㅕ:"000",ㅗ:"01",ㅛ:"10",ㅜ:"0000",ㅠ:"010",ㅡ:"100",ㅣ:"001"},12:{ก:"110",ข:"1010",ค:"101",ง:"10110",จ:"10010",ฉ:"1111",ช:"1001",ซ:"1100",ญ:"0111",ด:"100",ต:"1",ถ:"10100",ท:"10011",น:"10",บ:"1000",ป:"0110",ผ:"1101",ฝ:"10101",พ:"01100",ฟ:"0010",ม:"11",ย:"1011",ร:"010",ล:"0100",ว:"011",ส:"000",ห:"0000",อ:"10001",ฮ:"11011",ฤ:"01011",ะ:"01000",า:"01","ิ":"00100","ี":"00","ึ":"00110","ื":"0011","ุ":"00101","ู":"1110",เ:"0",แ:"0101",ไ:"01001",โ:"111",ำ:"00010","่":"001","้":"0001","๊":"11000","๋":"01010","ั":"01101","็":"11100","์":"11001",ๆ:"10111",ฯ:"11010"}},b=function(b,c){var d=f(b),e={};for(var g in a)for(var h in e[g]={},a[g])e[g][h]=a[g][h].replace(/0/g,d.dot).replace(/1/g,d.dash);return!0!==c&&delete e[0],e},c=function(a){var c={},d=b(a,!0);for(var e in d)for(var f in d[e])"undefined"==typeof c[d[e][f]]&&(c[d[e][f]]=f);return c},d=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=("00"+a.charCodeAt(c).toString(16)).slice(-4);return parseInt(b.join(""),16).toString(2)},e=function(a,b){return a=a.replace(new RegExp("\\"+b.dot,"g"),"0").replace(new RegExp("\\"+b.dash,"g"),"1"),a=parseInt(a,2),isNaN(a)?b.invalid:decodeURIComponent(JSON.parse("\"\\u"+a.toString(16)+"\""))},f=function(b){return b=b||{},b.oscillator=b.oscillator||{},b={dash:b.dash||"-",dot:b.dot||".",space:b.space||"/",invalid:b.invalid||"#",priority:b.priority||1,unit:b.unit||.08,oscillator:{type:b.oscillator.type||"sine",frequency:b.oscillator.frequency||500,onended:b.oscillator.onended||null}},a[1][" "]=b.space,a[0]=a[b.priority],b},g=function(b,c){var e=f(c);return _toConsumableArray(b.replace(/\s+/g," ").trim().toLocaleUpperCase()).map(function(b){for(var c in a)if("undefined"!=typeof a[c]&&"undefined"!=typeof a[c][b])return a[c][b];return 13===parseInt(e.priority)?d(b):e.invalid}).join(" ").replace(/0/g,e.dot).replace(/1/g,e.dash)},h="undefined"!=typeof window,i=h?window.AudioContext||window.webkitAudioContext:null,j=h?new i:null;return{characters:b,decode:function(a,b){var d=f(b),g=c(d);return a.replace(/\s+/g," ").trim().split(" ").map(function(a){return"undefined"==typeof g[a]?13===parseInt(d.priority)?e(a,d):d.invalid:g[a]}).join("")},encode:g,audio:function(a,b){var c,d=f(b),e=g(a,b),h=j.createOscillator(),k=j.createGain(),l=j.currentTime;h.type=d.oscillator.type,h.frequency.value=d.oscillator.frequency,h.onended=d.oscillator.onended,k.gain.setValueAtTime(0,l);for(var m=function(a){k.gain.setValueAtTime(1,l),l+=a*d.unit},n=function(a){k.gain.setValueAtTime(0,l),l+=a*d.unit},o=0;o<=e.length;o++)e[o]===d.space?n(7):e[o]===d.dot?(m(1),n(1)):e[o]===d.dash?(m(3),n(1)):n(3);h.connect(k),k.connect(j.destination);var p=function(){h.start(j.currentTime),c=setTimeout(function(){return q()},1e3*(l-j.currentTime))},q=function(){clearTimeout(c),c=0,h.stop(0)};return{play:p,stop:q,context:j,oscillator:h,gainNode:k}}}}); |
{ | ||
"name": "morsify", | ||
"version": "1.0.0", | ||
"description": "Morse code translator and decoder which also generates audio.", | ||
"version": "2.0.0", | ||
"description": "Morse code translator, morse encoder and decoder, which can also generate audio.", | ||
"keywords": [ | ||
@@ -30,4 +30,4 @@ "morse", | ||
"@babel/preset-env": "^7.1.0", | ||
"coveralls": "^2.13.3", | ||
"gulp": "^3.9.1", | ||
"coveralls": "^3.0.3", | ||
"gulp": "^4.0.0", | ||
"gulp-babel": "^8.0.0", | ||
@@ -39,3 +39,3 @@ "gulp-babel-minify": "^0.5.0", | ||
"lodash": "^4.17.11", | ||
"mocha": "^3.5.3" | ||
"mocha": "^6.0.2" | ||
}, | ||
@@ -42,0 +42,0 @@ "main": "./src/morsify.js", |
@@ -1,2 +0,2 @@ | ||
# morsify | ||
# Morsify - Morse Code Translator with Audio | ||
@@ -6,5 +6,6 @@ [![npm-version]][npm] [![npm-downloads]][npm] [![travis-ci]][travis] | ||
Morse code encoder and decoder with no dependencies supports Latin, Cyrillic, Greek, Hebrew, | ||
Arabic, Persian, Japanese, Korean, Thai, and Unicode (Chinese and the others) characters with audio generation functionality using the [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API). | ||
Arabic, Persian, Japanese, Korean, Thai, and Unicode (Chinese and the others) characters with audio generation | ||
functionality using the [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API). | ||
Live demo can be found here: [https://morsify.net](https://morsify.net) | ||
Live Demo: [https://morsify.net](https://morsify.net) | ||
@@ -29,4 +30,4 @@ ## Installation | ||
const morsify = require('morsify'); | ||
const encoded = morsify.encode('SOS'); // .../---/... | ||
const decoded = morsify.decode('.../---/...'); // S O S | ||
const encoded = morsify.encode('SOS'); // ... --- ... | ||
const decoded = morsify.decode('... --- ...'); // SOS | ||
const characters = morsify.characters(); // {'1': {'A': '.-', ...}, ..., '11': {'ㄱ': '.-..', ...}} | ||
@@ -43,4 +44,4 @@ const audio = morsify.audio('SOS'); | ||
<script> | ||
var encoded = morsify.encode('SOS'); // .../---/... | ||
var decoded = morsify.decode('.../---/...'); // S O S | ||
var encoded = morsify.encode('SOS'); // ... --- ... | ||
var decoded = morsify.decode('... --- ...'); // SOS | ||
var characters = morsify.characters(); // {'1': {'A': '.-', ...}, ..., '11': {'ㄱ': '.-..', ...}} | ||
@@ -80,8 +81,8 @@ var audio = morsify.audio('SOS'); | ||
```js | ||
var cyrillic = morsify.encode('Ленинград', { priority: 5 }); // .-.././-./../-./--./.-./.-/-.. | ||
var greek = morsify.decode('.../.-/--./.-/.--./.--', { priority: 6 }); // Σ Α Γ Α Π Ω | ||
var hebrew = morsify.decode('––– –... ––– –. ––. .. .–.. –––', { dash: '–', dot: '.', space: ' ', priority: 7 }); // ה ב ה נ ג י ל ה | ||
var chinese = morsify.encode('你好', { priority: 13 }); // -..----.--...../-.--..-.-----.- | ||
var characters = morsify.characters({ dash: '–', dot: '•' }); // {'1': {'A': '•–', ...}, ..., '11': {'ㄱ': '•–••', ...}} | ||
var arabicAudio = morsify.audio('البُراق', { // generates the morse .-/.-../-.../.-./.-/--.- then generates the audio from it | ||
const cyrillic = morsify.encode('Ленинград', { priority: 5 }); // .-.. . -. .. -. --. .-. .- -.. | ||
const greek = morsify.decode('... .- --. .- .--. .--', { priority: 6 }); // ΣΑΓΑΠΩ | ||
const hebrew = morsify.decode('.. ––– . –––', { dash: '–', dot: '.', priority: 7 }); // יהוה | ||
const chinese = morsify.encode('你好', { priority: 13 }); // -..----.--..... -.--..-.-----.- | ||
const characters = morsify.characters({ dash: '–', dot: '•' }); // {'1': {'A': '•–', ...}, ..., '11': {'ㄱ': '•–••', ...}} | ||
const arabicAudio = morsify.audio('البراق', { // generates the morse .- .-.. -... .-. .- --.- then generates the audio from it | ||
unit: 0.1, // period of one unit, in seconds, 1.2 / c where c is speed of transmission, in words per minute | ||
@@ -96,5 +97,5 @@ oscillator: { | ||
}); | ||
var oscillator = arabicAudio.oscillator; // OscillatorNode | ||
var context = arabicAudio.context; // AudioContext; | ||
var gainNode = audio.gainNode; // GainNode | ||
const oscillator = arabicAudio.oscillator; // OscillatorNode | ||
const context = arabicAudio.context; // AudioContext; | ||
const gainNode = audio.gainNode; // GainNode | ||
arabicAudio.play(); // will start playing morse audio | ||
@@ -101,0 +102,0 @@ arabicAudio.stop(); // will stop playing morse audio |
@@ -11,3 +11,3 @@ ;(((name, root, factory) => { | ||
'use strict'; | ||
const characters = { | ||
@@ -169,2 +169,3 @@ '1': { // Latin => https://en.wikipedia.org/wiki/Morse_code | ||
}; | ||
characters[1][' '] = options.space; | ||
characters[0] = characters[options.priority]; | ||
@@ -176,3 +177,3 @@ return options; | ||
const options = getOptions(opts); | ||
return text.replace(/\s+/g, '').toLocaleUpperCase().split('').map(function(character) { | ||
return [...text.replace(/\s+/g, ' ').trim().toLocaleUpperCase()].map(function(character) { | ||
for (let set in characters) { | ||
@@ -184,3 +185,3 @@ if (typeof characters[set] !== 'undefined' && typeof characters[set][character] !== 'undefined') { | ||
return parseInt(options.priority) === 13 ? unicodeToMorse(character) : options.invalid; | ||
}).join(options.space).replace(/0/g, options.dot).replace(/1/g, options.dash); | ||
}).join(' ').replace(/0/g, options.dot).replace(/1/g, options.dash); | ||
}; | ||
@@ -190,3 +191,3 @@ | ||
const options = getOptions(opts), swapped = swapCharacters(options); | ||
return morse.split(options.space).map(function(characters) { | ||
return morse.replace(/\s+/g, ' ').trim().split(' ').map(function(characters) { | ||
if (typeof swapped[characters] !== 'undefined') { | ||
@@ -196,3 +197,3 @@ return swapped[characters]; | ||
return parseInt(options.priority) === 13 ? unicodeToHex(characters, options) : options.invalid; | ||
}).join(' ').replace(/\s+/g, ' '); | ||
}).join(''); | ||
}; | ||
@@ -223,3 +224,3 @@ | ||
}; | ||
const silence = (i) => { | ||
@@ -247,3 +248,2 @@ gainNode.gain.setValueAtTime(0, t); | ||
const play = () => { | ||
@@ -250,0 +250,0 @@ oscillator.start(context.currentTime); |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
40423
816
124
0