encoder-js v0.1.6
encoder-js
super simple encoder / decoder. Give it a string and an alphabet and it returns an encoded string in the target alphabet along with encode keys to decode the string later.
install
npm install --save-dev encoder-js
then run the tests:
npm test
this requires babel-cli for polyfilling ES6 features. So, make sure you run this on node.
import Encoder from 'encoder-js'
encoding / decoding
There are just two simple helper functions, one for strings and one for arrays. The functions are have the name "encode" in them because decoding is actually just encoding a message from its encoded form to its target form given decode keys.
encodeCharsArr
takes an array and returns an array:
//"encode" example
encodeCharsArr(["t", "a", "c", "t", "o"], { a: '01', c: '10', o: '11', t: '00' })
=> ["00", "01", "10", "00", "11"]
//"decode" example
encodeCharsArr(["00", "01", "10", "00", "11"], { '01': 'a', '10' : 'c', '11' : 'o', '00' : 't' })
=> ["t", "a", "c", "t", "o"]
while encodeCharStr
takes a string and returns a string:
encodeCharStr("tacto", { a: ' \t', c: '\t ', o: '\t\t', t: ' ' })
=> " \t\t \t\t"
encode helper function
The encode
function uses the encodeCharStr
& encodeCharsArr
functions, and a few other things, to give you a way to encode strings in a really simple way. For example:
encode("tacto",["0","1"])
Will output:
[{t:"00", a:"01", c:"10", o:"11"}, 2, [ '00', '01', '10', '00', '11' ]]);
The input is the message to encode and the alphabet, and the output is an array with the decodeKeys, the key length, and the message encoded into a character array.