JSFiddle - React, Tailwind, and code Playground

by Hernan Rivas Acosta

HTML

<script src="https://rawgit.com/HernanRivasAcosta/jem.js/master/jem.js"></script>
<body style="background: #111;">
</body>

JavaScript

var obj = {"prop1": "a_string",
           "prop2": [null, "null", 123456, ["hernan", {"i_prop1": "a_value",
                                                       "i_prop2": 3,
                                                       "i_prop3": -3,
                                                       "i_prop4": -123456}]],
           "prop3": [true, false],
           "prop4": [],
           "prop5": [-1, -1.0, 1, 1.0, -0.0, 0.0, -12345.6789, 98765.4321]};
           
console.log(toErlString(Inaka.Jem.encode(obj)));

var bytes = [131,116,0,0,0,5,109,0,0,0,2,107,49,108,0,0,0,3,100,0,4,
             110,117,108,108,100,0,5,102,97,108,115,101,100,0,4,116,
             114,117,101,106,109,0,0,0,2,107,50,116,0,0,0,2,109,0,0,
             0,4,107,101,121,49,109,0,0,0,4,118,97,108,49,109,0,0,0,
             4,107,101,121,50,98,0,18,214,135,109,0,0,0,2,107,51,108,
             0,0,0,7,70,191,240,0,0,0,0,0,0,98,255,255,255,255,70,0,
             0,0,0,0,0,0,0,70,0,0,0,0,0,0,0,0,97,1,70,63,240,0,0,0,0,
             0,0,70,64,200,28,214,230,49,248,161,106,109,0,0,0,2,107,
             52,108,0,0,0,7,98,255,237,41,121,97,0,97,126,97,127,97,
             128,97,129,98,0,135,210,114,106,109,0,0,0,2,107,53,106];
var buffer = new ArrayBuffer(bytes.length);
var view = new DataView(buffer);
bytes.forEach((n, i) => view.setUint8(i, n));

console.log(Inaka.Jem.decode(buffer));

function toErlString(buffer)
{
  var dv = new DataView(buffer);
  var a = [];
  for (var i = 0; i < dv.byteLength; i++)
    a[i] = dv.getUint8(i);
  return "<<" + a.join(",") + ">>";
}

function toErlString_old(a)
{
  return "<<" + a.join(",") + ">>";
}