summaryrefslogtreecommitdiff
path: root/demo/components/code-box/stream-adapter.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'demo/components/code-box/stream-adapter.tsx')
-rw-r--r--demo/components/code-box/stream-adapter.tsx17
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