UNPKG

b-tree

Version:

Async/Await I/O B-tree in pure JavaScript for Node.js.

22 lines (21 loc) 804 B
module.exports = function (checksum) { const EOL = Buffer.from('\n') return function (header, body = null) { const buffers = [], checksums = [] let length = 0, json = false if (body != null) { if (!Buffer.isBuffer(body)) { json = true body = Buffer.from(JSON.stringify(body)) } buffers.push(EOL, body) length = body.length + 1 checksums.push(checksum(body, 0, body.length)) } header = Buffer.from(JSON.stringify({ json, length, header })) buffers.push(EOL, header) checksums.push(checksum(header, 0, header.length)) buffers.push(EOL, Buffer.from(JSON.stringify(checksums.reverse()))) return Buffer.concat(buffers.reverse()) } }