'use strict'; const _has = (obj, key) => { return Object.prototype.hasOwnProperty.call(obj, key); }; module.exports.assign = function (obj /*from1, from2, from3, ...*/) { const sources = Array.prototype.slice.call(arguments, 1); while (sources.length) { const source = sources.shift(); if (!source) { continue; } if (typeof source !== 'object') { throw new TypeError(source + 'must be non-object'); } for (const p in source) { if (_has(source, p)) { obj[p] = source[p]; } } } return obj; }; // Join array of chunks to single array. module.exports.flattenChunks = (chunks) => { // calculate data length let len = 0; for (let i = 0, l = chunks.length; i < l; i++) { len += chunks[i].length; } // join chunks const result = new Uint8Array(len); for (let i = 0, pos = 0, l = chunks.length; i < l; i++) { let chunk = chunks[i]; result.set(chunk, pos); pos += chunk.length; } return result; };