1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-25 16:49:18 -05:00
denoland-deno/cli/rt/20_streams_queuing_strategy.js

50 lines
1.1 KiB
JavaScript

// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
((window) => {
const customInspect = Symbol.for("Deno.customInspect");
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);