Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const msgpack = {
- append(dest, src) {
- return Buffer.concat([dest, src])
- },
- encode(obj) {
- if (typeof obj === 'number') {
- let buf = Buffer.alloc(9)
- buf.writeUInt8(0xce, 0)
- buf.writeUInt32BE(obj, 1)
- return buf
- } else if (typeof obj === 'string') {
- const str = Buffer.from(obj)
- let buf = Buffer.alloc(5 + obj.length)
- buf.writeUInt8(0xdb, 0)
- buf.writeUInt32BE(obj.length, 1)
- str.copy(buf, 5)
- return buf
- }
- throw new Error(`msgpack: unsupported object: ${obj}`)
- },
- pack(obj) {
- console.log(obj)
- let payload = Buffer.from([0x80 | Object.keys(obj).length])
- // We cannot use Object.keys() because
- // `k' must be a Number.
- for (const k in obj) {
- if (k > 0x7f) {
- throw new Error(`msgpack: too large key`)
- }
- payload = this.append(payload, Buffer.from([k]))
- payload = this.append(payload, this.encode(obj[k]))
- console.log(k)
- }
- },
- unpack(obj) {
- console.log(obj)
- }
- }
Add Comment
Please, Sign In to add comment