diff options
| author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2019-05-30 14:59:30 +0200 |
|---|---|---|
| committer | Ryan Dahl <ry@tinyclouds.org> | 2019-05-30 08:59:30 -0400 |
| commit | 50a79584cb12129b3db1ef3e0eb9d0c8b9f20b62 (patch) | |
| tree | ee9a90a8b8018c03b1e1a6ace07abdaa494ea90d /http/server.ts | |
| parent | 80b3c486f6222f65b52eb2eca903b67312e8ce0c (diff) | |
chore: Implement strict mode (denoland/deno_std#453)
Original: https://github.com/denoland/deno_std/commit/be24677d15494e83eea2e99bfc5ccfdde31cb892
Diffstat (limited to 'http/server.ts')
| -rw-r--r-- | http/server.ts | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/http/server.ts b/http/server.ts index 5ea52a0b8..5c56a2ec2 100644 --- a/http/server.ts +++ b/http/server.ts @@ -73,11 +73,10 @@ export async function writeResponse(w: Writer, r: Response): Promise<void> { let out = `HTTP/${protoMajor}.${protoMinor} ${statusCode} ${statusText}\r\n`; setContentLength(r); + const headers = r.headers!; - if (r.headers) { - for (const [key, value] of r.headers) { - out += `${key}: ${value}\r\n`; - } + for (const [key, value] of headers!) { + out += `${key}: ${value}\r\n`; } out += "\r\n"; @@ -88,8 +87,8 @@ export async function writeResponse(w: Writer, r: Response): Promise<void> { if (r.body instanceof Uint8Array) { const n = await writer.write(r.body); assert(n === r.body.byteLength); - } else if (r.headers.has("content-length")) { - const bodyLength = parseInt(r.headers.get("content-length")); + } else if (headers.has("content-length")) { + const bodyLength = parseInt(headers.get("content-length")!); const n = await copy(writer, r.body); assert(n === bodyLength); } else { @@ -99,19 +98,19 @@ export async function writeResponse(w: Writer, r: Response): Promise<void> { } export class ServerRequest { - url: string; - method: string; - proto: string; - protoMinor: number; - protoMajor: number; - headers: Headers; - r: BufReader; - w: BufWriter; + url!: string; + method!: string; + proto!: string; + protoMinor!: number; + protoMajor!: number; + headers!: Headers; + r!: BufReader; + w!: BufWriter; done: Deferred<void> = deferred(); public async *bodyStream(): AsyncIterableIterator<Uint8Array> { if (this.headers.has("content-length")) { - const len = +this.headers.get("content-length"); + const len = +this.headers.get("content-length")!; if (Number.isNaN(len)) { return new Uint8Array(0); } @@ -128,7 +127,7 @@ export class ServerRequest { } else { if (this.headers.has("transfer-encoding")) { const transferEncodings = this.headers - .get("transfer-encoding") + .get("transfer-encoding")! .split(",") .map((e): string => e.trim().toLowerCase()); if (transferEncodings.includes("chunked")) { @@ -334,14 +333,14 @@ export class Server implements AsyncIterable<ServerRequest> { // Wait for the request to be processed before we accept a new request on // this connection. - await req.done; + await req!.done; } - if (req === EOF) { + if (req! === EOF) { // The connection was gracefully closed. } else if (err) { // An error was thrown while parsing request headers. - await writeResponse(req.w, { + await writeResponse(req!.w, { status: 400, body: new TextEncoder().encode(`${err.message}\r\n\r\n`) }); |
