summaryrefslogtreecommitdiff
path: root/js/request.ts
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2019-10-04 20:28:51 -0400
committerGitHub <noreply@github.com>2019-10-04 20:28:51 -0400
commitb81e5db17aa8b3088d6034ddf86b79c69410f012 (patch)
tree579e4c23d60d1b0d038156bc28a04f74ea87b2f0 /js/request.ts
parent9049213867d30f7df090a83b6baf3e0717a4d2d2 (diff)
Merge deno_cli_snapshots into deno_cli (#3064)
Diffstat (limited to 'js/request.ts')
-rw-r--r--js/request.ts151
1 files changed, 0 insertions, 151 deletions
diff --git a/js/request.ts b/js/request.ts
deleted file mode 100644
index 0c77b8854..000000000
--- a/js/request.ts
+++ /dev/null
@@ -1,151 +0,0 @@
-// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
-import * as headers from "./headers.ts";
-import * as body from "./body.ts";
-import * as domTypes from "./dom_types.ts";
-
-const { Headers } = headers;
-
-function byteUpperCase(s: string): string {
- return String(s).replace(/[a-z]/g, function byteUpperCaseReplace(c): string {
- return c.toUpperCase();
- });
-}
-
-function normalizeMethod(m: string): string {
- const u = byteUpperCase(m);
- if (
- u === "DELETE" ||
- u === "GET" ||
- u === "HEAD" ||
- u === "OPTIONS" ||
- u === "POST" ||
- u === "PUT"
- ) {
- return u;
- }
- return m;
-}
-
-/**
- * An HTTP request
- * @param {Blob|String} [body]
- * @param {Object} [init]
- */
-export class Request extends body.Body implements domTypes.Request {
- public method: string;
- public url: string;
- public credentials?: "omit" | "same-origin" | "include";
- public headers: domTypes.Headers;
-
- constructor(input: domTypes.RequestInfo, init?: domTypes.RequestInit) {
- if (arguments.length < 1) {
- throw TypeError("Not enough arguments");
- }
-
- if (!init) {
- init = {};
- }
-
- let b: body.BodySource;
-
- // prefer body from init
- if (init.body) {
- b = init.body;
- } else if (input instanceof Request && input._bodySource) {
- if (input.bodyUsed) {
- throw TypeError(body.BodyUsedError);
- }
- b = input._bodySource;
- } else if (typeof input === "object" && "body" in input && input.body) {
- if (input.bodyUsed) {
- throw TypeError(body.BodyUsedError);
- }
- b = input.body;
- } else {
- b = "";
- }
-
- let headers: domTypes.Headers;
-
- // prefer headers from init
- if (init.headers) {
- headers = new Headers(init.headers);
- } else if (input instanceof Request) {
- headers = input.headers;
- } else {
- headers = new Headers();
- }
-
- const contentType = headers.get("content-type") || "";
- super(b, contentType);
- this.headers = headers;
-
- // readonly attribute ByteString method;
- /**
- * The HTTP request method
- * @readonly
- * @default GET
- * @type {string}
- */
- this.method = "GET";
-
- // readonly attribute USVString url;
- /**
- * The request URL
- * @readonly
- * @type {string}
- */
- this.url = "";
-
- // readonly attribute RequestCredentials credentials;
- this.credentials = "omit";
-
- if (input instanceof Request) {
- if (input.bodyUsed) {
- throw TypeError(body.BodyUsedError);
- }
- this.method = input.method;
- this.url = input.url;
- this.headers = new Headers(input.headers);
- this.credentials = input.credentials;
- this._stream = input._stream;
- } else if (typeof input === "string") {
- this.url = input;
- }
-
- if (init && "method" in init) {
- this.method = normalizeMethod(init.method as string);
- }
-
- if (
- init &&
- "credentials" in init &&
- init.credentials &&
- ["omit", "same-origin", "include"].indexOf(init.credentials) !== -1
- ) {
- this.credentials = init.credentials;
- }
- }
-
- public clone(): domTypes.Request {
- if (this.bodyUsed) {
- throw TypeError(body.BodyUsedError);
- }
-
- const iterators = this.headers.entries();
- const headersList: Array<[string, string]> = [];
- for (const header of iterators) {
- headersList.push(header);
- }
-
- const body2 = this._bodySource;
-
- const cloned = new Request(this.url, {
- body: body2,
- method: this.method,
- headers: new Headers(headersList),
- credentials: this.credentials
- });
- return cloned;
- }
-}