summaryrefslogtreecommitdiff
path: root/cli/js/web/streams/strategies.ts
diff options
context:
space:
mode:
authorBartek Iwańczuk <biwanczuk@gmail.com>2020-03-05 13:05:41 +0100
committerBartek Iwańczuk <biwanczuk@gmail.com>2020-03-05 18:48:55 +0100
commit2e590072148c85bbc479ab49aa9556b0a2cfaff2 (patch)
tree89747e7b6762158e35f9120ca0ef0fa14991ae34 /cli/js/web/streams/strategies.ts
parent9b59ed7c7907c5f365e72b5c5a74114eb8ff1488 (diff)
move Web APIs to cli/js/web/
Diffstat (limited to 'cli/js/web/streams/strategies.ts')
-rw-r--r--cli/js/web/streams/strategies.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/cli/js/web/streams/strategies.ts b/cli/js/web/streams/strategies.ts
new file mode 100644
index 000000000..5f7ffc632
--- /dev/null
+++ b/cli/js/web/streams/strategies.ts
@@ -0,0 +1,39 @@
+// Forked from https://github.com/stardazed/sd-streams/tree/8928cf04b035fd02fb1340b7eb541c76be37e546
+// Copyright (c) 2018-Present by Arthur Langereis - @zenmumbler MIT
+
+/**
+ * streams/strategies - implementation of the built-in stream strategies
+ * Part of Stardazed
+ * (c) 2018-Present by Arthur Langereis - @zenmumbler
+ * https://github.com/stardazed/sd-streams
+ */
+
+/* eslint-disable @typescript-eslint/no-explicit-any */
+// TODO reenable this lint here
+
+import { QueuingStrategy } from "../dom_types.ts";
+
+export class ByteLengthQueuingStrategy
+ implements QueuingStrategy<ArrayBufferView> {
+ highWaterMark: number;
+
+ constructor(options: { highWaterMark: number }) {
+ this.highWaterMark = options.highWaterMark;
+ }
+
+ size(chunk: ArrayBufferView): number {
+ return chunk.byteLength;
+ }
+}
+
+export class CountQueuingStrategy implements QueuingStrategy<any> {
+ highWaterMark: number;
+
+ constructor(options: { highWaterMark: number }) {
+ this.highWaterMark = options.highWaterMark;
+ }
+
+ size(): number {
+ return 1;
+ }
+}