summaryrefslogtreecommitdiff
path: root/cli/rt/20_streams_queuing_strategy.js
diff options
context:
space:
mode:
Diffstat (limited to 'cli/rt/20_streams_queuing_strategy.js')
-rw-r--r--cli/rt/20_streams_queuing_strategy.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/cli/rt/20_streams_queuing_strategy.js b/cli/rt/20_streams_queuing_strategy.js
new file mode 100644
index 000000000..cbd30664f
--- /dev/null
+++ b/cli/rt/20_streams_queuing_strategy.js
@@ -0,0 +1,50 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+
+((window) => {
+ const { customInspect } = window.__bootstrap.console;
+
+ class CountQueuingStrategy {
+ constructor({ highWaterMark }) {
+ this.highWaterMark = highWaterMark;
+ }
+
+ size() {
+ return 1;
+ }
+
+ [customInspect]() {
+ return `${this.constructor.name} { highWaterMark: ${
+ String(this.highWaterMark)
+ }, size: f }`;
+ }
+ }
+
+ Object.defineProperty(CountQueuingStrategy.prototype, "size", {
+ enumerable: true,
+ });
+
+ class ByteLengthQueuingStrategy {
+ constructor({ highWaterMark }) {
+ this.highWaterMark = highWaterMark;
+ }
+
+ size(chunk) {
+ return chunk.byteLength;
+ }
+
+ [customInspect]() {
+ return `${this.constructor.name} { highWaterMark: ${
+ String(this.highWaterMark)
+ }, size: f }`;
+ }
+ }
+
+ Object.defineProperty(ByteLengthQueuingStrategy.prototype, "size", {
+ enumerable: true,
+ });
+
+ window.__bootstrap.queuingStrategy = {
+ CountQueuingStrategy,
+ ByteLengthQueuingStrategy,
+ };
+})(this);