summaryrefslogtreecommitdiff
path: root/cli/js/web/streams/writable_stream.ts
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-07-19 19:49:44 +0200
committerGitHub <noreply@github.com>2020-07-19 19:49:44 +0200
commitfa61956f03491101b6ef64423ea2f1f73af26a73 (patch)
treec3800702071ca78aa4dd71bdd0a59a9bbe460bdd /cli/js/web/streams/writable_stream.ts
parent53adde866dd399aa2509d14508642fce37afb8f5 (diff)
Port internal TS code to JS (#6793)
Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
Diffstat (limited to 'cli/js/web/streams/writable_stream.ts')
-rw-r--r--cli/js/web/streams/writable_stream.ts107
1 files changed, 0 insertions, 107 deletions
diff --git a/cli/js/web/streams/writable_stream.ts b/cli/js/web/streams/writable_stream.ts
deleted file mode 100644
index 94bedb941..000000000
--- a/cli/js/web/streams/writable_stream.ts
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-
-import {
- AbortRequest,
- acquireWritableStreamDefaultWriter,
- Deferred,
- initializeWritableStream,
- isWritableStream,
- isWritableStreamLocked,
- makeSizeAlgorithmFromSizeFunction,
- setUpWritableStreamDefaultControllerFromUnderlyingSink,
- writableStreamAbort,
- writableStreamClose,
- writableStreamCloseQueuedOrInFlight,
- validateAndNormalizeHighWaterMark,
-} from "./internals.ts";
-import * as sym from "./symbols.ts";
-import type { WritableStreamDefaultControllerImpl } from "./writable_stream_default_controller.ts";
-import type { WritableStreamDefaultWriterImpl } from "./writable_stream_default_writer.ts";
-import { customInspect } from "../console.ts";
-import { setFunctionName } from "../util.ts";
-
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-export class WritableStreamImpl<W = any> implements WritableStream<W> {
- [sym.backpressure]: boolean;
- [sym.closeRequest]?: Deferred<void>;
- [sym.inFlightWriteRequest]?: Required<Deferred<void>>;
- [sym.inFlightCloseRequest]?: Deferred<void>;
- [sym.pendingAbortRequest]?: AbortRequest;
- [sym.state]: "writable" | "closed" | "erroring" | "errored";
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- [sym.storedError]?: any;
- [sym.writableStreamController]?: WritableStreamDefaultControllerImpl<W>;
- [sym.writer]?: WritableStreamDefaultWriterImpl<W>;
- [sym.writeRequests]: Array<Required<Deferred<void>>>;
-
- constructor(
- underlyingSink: UnderlyingSink = {},
- strategy: QueuingStrategy = {},
- ) {
- initializeWritableStream(this);
- const size = strategy.size;
- let highWaterMark = strategy.highWaterMark ?? 1;
- const { type } = underlyingSink;
- if (type !== undefined) {
- throw new RangeError(`Sink type of "${String(type)}" not supported.`);
- }
- const sizeAlgorithm = makeSizeAlgorithmFromSizeFunction(size);
- highWaterMark = validateAndNormalizeHighWaterMark(highWaterMark);
- setUpWritableStreamDefaultControllerFromUnderlyingSink(
- this,
- underlyingSink,
- highWaterMark,
- sizeAlgorithm,
- );
- }
-
- get locked(): boolean {
- if (!isWritableStream(this)) {
- throw new TypeError("Invalid WritableStream.");
- }
- return isWritableStreamLocked(this);
- }
-
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- abort(reason: any): Promise<void> {
- if (!isWritableStream(this)) {
- return Promise.reject(new TypeError("Invalid WritableStream."));
- }
- if (isWritableStreamLocked(this)) {
- return Promise.reject(
- new TypeError("Cannot abort a locked WritableStream."),
- );
- }
- return writableStreamAbort(this, reason);
- }
-
- close(): Promise<void> {
- if (!isWritableStream(this)) {
- return Promise.reject(new TypeError("Invalid WritableStream."));
- }
- if (isWritableStreamLocked(this)) {
- return Promise.reject(
- new TypeError("Cannot abort a locked WritableStream."),
- );
- }
- if (writableStreamCloseQueuedOrInFlight(this)) {
- return Promise.reject(
- new TypeError("Cannot close an already closing WritableStream."),
- );
- }
- return writableStreamClose(this);
- }
-
- getWriter(): WritableStreamDefaultWriter<W> {
- if (!isWritableStream(this)) {
- throw new TypeError("Invalid WritableStream.");
- }
- return acquireWritableStreamDefaultWriter(this);
- }
-
- [customInspect](): string {
- return `${this.constructor.name} { locked: ${String(this.locked)} }`;
- }
-}
-
-setFunctionName(WritableStreamImpl, "WritableStream");