/* c8 ignore start */ // 64 KiB (same size chrome slice theirs blob into Uint8array's) const POOL_SIZE = 65536; if (!globalThis.ReadableStream) { try { Object.assign(globalThis, require('stream/web')) } catch (error) { // TODO: Remove when only supporting node >= 16.5.0 Object.assign(globalThis, require('web-streams-polyfill/dist/ponyfill.es2018.js')) } } try { const {Blob} = require('buffer') if (Blob && !Blob.prototype.stream) { Blob.prototype.stream = function name(params) { let position = 0; const blob = this; return new ReadableStream({ type: 'bytes', async pull(ctrl) { const chunk = blob.slice(position, Math.min(blob.size, position + POOL_SIZE)); const buffer = await chunk.arrayBuffer(); position += buffer.byteLength; ctrl.enqueue(new Uint8Array(buffer)) if (position === blob.size) { ctrl.close() } } }) } } } catch (error) {} /* c8 ignore end */