diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2020-05-01 00:40:10 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-30 10:40:10 -0400 |
commit | 81c75332fbf2635f5275cc85053dc244f211471d (patch) | |
tree | b0142c4dddf6f2ef2d6c48c0470e5bdfe822b499 /cli/js/web/streams/queuing_strategy.ts | |
parent | 84d687e958ab93afb161def4a8ab47f8994307c9 (diff) |
feat: Add WritableStreams (and enable ReadableStreams piping) (#4980)
Diffstat (limited to 'cli/js/web/streams/queuing_strategy.ts')
-rw-r--r-- | cli/js/web/streams/queuing_strategy.ts | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/cli/js/web/streams/queuing_strategy.ts b/cli/js/web/streams/queuing_strategy.ts new file mode 100644 index 000000000..d2717874e --- /dev/null +++ b/cli/js/web/streams/queuing_strategy.ts @@ -0,0 +1,53 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. + +import { setFunctionName } from "./internals.ts"; +import { customInspect } from "../console.ts"; + +export class CountQueuingStrategyImpl implements CountQueuingStrategy { + highWaterMark: number; + + constructor({ highWaterMark }: { highWaterMark: number }) { + this.highWaterMark = highWaterMark; + } + + size(): 1 { + return 1; + } + + [customInspect](): string { + return `${this.constructor.name} { highWaterMark: ${String( + this.highWaterMark + )}, size: f }`; + } +} + +Object.defineProperty(CountQueuingStrategyImpl.prototype, "size", { + enumerable: true, +}); + +setFunctionName(CountQueuingStrategyImpl, "CountQueuingStrategy"); + +export class ByteLengthQueuingStrategyImpl + implements ByteLengthQueuingStrategy { + highWaterMark: number; + + constructor({ highWaterMark }: { highWaterMark: number }) { + this.highWaterMark = highWaterMark; + } + + size(chunk: ArrayBufferView): number { + return chunk.byteLength; + } + + [customInspect](): string { + return `${this.constructor.name} { highWaterMark: ${String( + this.highWaterMark + )}, size: f }`; + } +} + +Object.defineProperty(ByteLengthQueuingStrategyImpl.prototype, "size", { + enumerable: true, +}); + +setFunctionName(CountQueuingStrategyImpl, "CountQueuingStrategy"); |