decode.js 458 B

1234567891011121314151617181920212223242526272829
  1. /**
  2. * Decode the given `buf`.
  3. *
  4. * @param {Buffer} buf
  5. * @return {Object}
  6. * @api public
  7. */
  8. module.exports = function(buf){
  9. var off = 0;
  10. // unpack meta
  11. var meta = buf[off++];
  12. var version = meta >> 4;
  13. var argv = meta & 0xf;
  14. var args = new Array(argv);
  15. // unpack args
  16. for (var i = 0; i < argv; i++) {
  17. var len = buf.readUInt32BE(off);
  18. off += 4;
  19. var arg = buf.slice(off, off += len);
  20. args[i] = arg;
  21. }
  22. return args;
  23. };