diff options
Diffstat (limited to 'demo/components/code-box/stream-adapter.tsx')
-rw-r--r-- | demo/components/code-box/stream-adapter.tsx | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/demo/components/code-box/stream-adapter.tsx b/demo/components/code-box/stream-adapter.tsx new file mode 100644 index 0000000..a97d2ed --- /dev/null +++ b/demo/components/code-box/stream-adapter.tsx @@ -0,0 +1,17 @@ +import { AsyncDeflate } from '../../..'; +export default (stream: AsyncDeflate) => { + const writable = new WritableStream({ + write(dat: Uint8Array) { stream.push(dat); }, + close() { stream.push(new Uint8Array(0), true); } + }); + const readable = new ReadableStream({ + start(controller: ReadableStreamDefaultController<Uint8Array>) { + stream.ondata = (err, chunk, final) => { + if (err) writable.abort(err.message); + controller.enqueue(chunk); + if (final) controller.close(); + } + } + }); + return { readable, writable }; +}
\ No newline at end of file |