UNPKG

node-red-contrib-web-worldmap

Version:

A Node-RED node to provide a web page of a world map for plotting things on.

56 lines (47 loc) 1.32 kB
// Jumping around in a binary parser var Buffer = require('buffer').Buffer; var BufferList = require('bufferlist'); var Binary = require('bufferlist/binary'); var assert = require('assert'); Number.prototype.upTo = function (n) { var acc = []; for (var i = Number(this); i <= n; i++) { acc.push(i); } return acc; }; Number.prototype.downTo = function (n) { var acc = []; for (var i = Number(this); i >= n; i--) { acc.push(i); } return acc; }; Array.prototype.zip = function (xs) { var arr = this; return (0).upTo(this.length - 1).map(function (i) { return [ arr[i], xs[i] ]; }); }; exports.jump = function () { var tapped = 0; var bList = new BufferList; Binary(bList) .skip(3) .getWord16be('de') .tap(function (vars) { var de = 256 * 'd'.charCodeAt(0) + 'e'.charCodeAt(0); assert.eql( vars.de, de, 'getWord16be at 3 should be ' + de + ', not ' + vars.de ); tapped ++; }) .end() ; var buf1 = new Buffer(5); buf1.write('abcde'); var buf2 = new Buffer(3); buf2.write('xyz'); var buf3 = new Buffer(5); buf3.write('11358'); bList.push(buf1,buf2,buf3); assert.eql(tapped, 1, 'not tapped'); };