summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--js/body.ts78
-rw-r--r--js/request.ts9
-rw-r--r--js/request_test.ts34
-rw-r--r--package.json1
m---------third_party0
5 files changed, 2 insertions, 120 deletions
diff --git a/js/body.ts b/js/body.ts
index fdf7fef06..b1f1af8a5 100644
--- a/js/body.ts
+++ b/js/body.ts
@@ -1,27 +1,17 @@
-import * as streams from "@stardazed/streams";
import * as formData from "./form_data";
import * as blob from "./blob";
import * as encoding from "./text_encoding";
import * as headers from "./headers";
-
import * as domTypes from "./dom_types";
const { Headers } = headers;
// only namespace imports work for now, plucking out what we need
-const { ReadableStream } = streams;
const { FormData } = formData;
const { TextEncoder, TextDecoder } = encoding;
const Blob = blob.DenoBlob;
const DenoBlob = blob.DenoBlob;
-type ReadableStreamReader = domTypes.ReadableStreamReader;
-
-interface ReadableStreamController {
- enqueue(chunk: string | ArrayBuffer): void;
- close(): void;
-}
-
export type BodySource =
| domTypes.Blob
| domTypes.BufferSource
@@ -47,8 +37,6 @@ function validateBodyType(owner: Body, bodySource: BodySource): boolean {
return true;
} else if (typeof bodySource === "string") {
return true;
- } else if (bodySource instanceof ReadableStream) {
- return true;
} else if (bodySource instanceof FormData) {
return true;
} else if (!bodySource) {
@@ -59,58 +47,6 @@ function validateBodyType(owner: Body, bodySource: BodySource): boolean {
);
}
-function concatenate(...arrays: Uint8Array[]): ArrayBuffer {
- let totalLength = 0;
- for (const arr of arrays) {
- totalLength += arr.length;
- }
- const result = new Uint8Array(totalLength);
- let offset = 0;
- for (const arr of arrays) {
- result.set(arr, offset);
- offset += arr.length;
- }
- return result.buffer as ArrayBuffer;
-}
-
-function bufferFromStream(stream: ReadableStreamReader): Promise<ArrayBuffer> {
- return new Promise(
- (resolve, reject): void => {
- const parts: Uint8Array[] = [];
- const encoder = new TextEncoder();
- // recurse
- (function pump(): void {
- stream
- .read()
- .then(
- ({ done, value }): void => {
- if (done) {
- return resolve(concatenate(...parts));
- }
-
- if (typeof value === "string") {
- parts.push(encoder.encode(value));
- } else if (value instanceof ArrayBuffer) {
- parts.push(new Uint8Array(value));
- } else if (!value) {
- // noop for undefined
- } else {
- reject("unhandled type on stream read");
- }
-
- return pump();
- }
- )
- .catch(
- (err): void => {
- reject(err);
- }
- );
- })();
- }
- );
-}
-
function getHeaderValueParams(value: string): Map<string, string> {
const params = new Map();
// Forced to do so for some Map constructor param mismatch
@@ -145,17 +81,8 @@ export class Body implements domTypes.Body {
if (this._stream) {
return this._stream;
}
- if (this._bodySource instanceof ReadableStream) {
- // @ts-ignore
- this._stream = this._bodySource;
- }
if (typeof this._bodySource === "string") {
- this._stream = new ReadableStream({
- start(controller: ReadableStreamController): void {
- controller.enqueue(this._bodySource);
- controller.close();
- }
- });
+ throw Error("not implemented");
}
return this._stream;
}
@@ -332,9 +259,6 @@ export class Body implements domTypes.Body {
} else if (typeof this._bodySource === "string") {
const enc = new TextEncoder();
return enc.encode(this._bodySource).buffer as ArrayBuffer;
- } else if (this._bodySource instanceof ReadableStream) {
- // @ts-ignore
- return bufferFromStream(this._bodySource.getReader());
} else if (this._bodySource instanceof FormData) {
const enc = new TextEncoder();
return enc.encode(this._bodySource.toString()).buffer as ArrayBuffer;
diff --git a/js/request.ts b/js/request.ts
index 97bb8944b..5ed1e9d63 100644
--- a/js/request.ts
+++ b/js/request.ts
@@ -1,13 +1,9 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
import * as headers from "./headers";
import * as body from "./body";
-
-import * as streams from "@stardazed/streams";
-
import * as domTypes from "./dom_types";
const { Headers } = headers;
-const { ReadableStream } = streams;
function byteUpperCase(s: string): string {
return String(s).replace(/[a-z]/g, function byteUpperCaseReplace(c): string {
@@ -144,11 +140,6 @@ export class Request extends body.Body implements domTypes.Request {
let body2 = this._bodySource;
- if (this._bodySource instanceof ReadableStream) {
- const tees = (this._bodySource as domTypes.ReadableStream).tee();
- this._stream = this._bodySource = tees[0];
- body2 = tees[1];
- }
const cloned = new Request(this.url, {
body: body2,
method: this.method,
diff --git a/js/request_test.ts b/js/request_test.ts
index 7421544fe..e9e1f5164 100644
--- a/js/request_test.ts
+++ b/js/request_test.ts
@@ -1,5 +1,5 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
-import { test, assertEquals, assert } from "./test_util.ts";
+import { test, assertEquals } from "./test_util.ts";
test(function fromInit(): void {
const req = new Request("https://example.com", {
@@ -15,35 +15,3 @@ test(function fromInit(): void {
assertEquals(req.url, "https://example.com");
assertEquals(req.headers.get("test-header"), "value");
});
-
-test(function fromRequest(): void {
- const r = new Request("https://example.com");
- // @ts-ignore
- r._bodySource = "ahoyhoy";
- r.headers.set("test-header", "value");
-
- const req = new Request(r);
-
- // @ts-ignore
- assertEquals(req._bodySource, r._bodySource);
- assertEquals(req.url, r.url);
- assertEquals(req.headers.get("test-header"), r.headers.get("test-header"));
-});
-
-test(async function cloneRequestBodyStream(): Promise<void> {
- // hack to get a stream
- const stream = new Request("", { body: "a test body" }).body;
- const r1 = new Request("https://example.com", {
- body: stream
- });
-
- const r2 = r1.clone();
-
- const b1 = await r1.text();
- const b2 = await r2.text();
-
- assertEquals(b1, b2);
-
- // @ts-ignore
- assert(r1._bodySource !== r2._bodySource);
-});
diff --git a/package.json b/package.json
index e5ae72a43..23e4c8f4e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,6 @@
{
"name": "deno",
"devDependencies": {
- "@stardazed/streams": "3.0.0",
"@types/prettier": "1.16.1",
"@typescript-eslint/eslint-plugin": "1.6.0",
"@typescript-eslint/parser": "1.6.0",
diff --git a/third_party b/third_party
-Subproject f034aeb0b9a5ba6503cad1186df7e2eae402b35
+Subproject 47a8f150bcbe3b78f174ae79dcc07a12adb0d5b