From fb0b99408b1ce0c8061d654e9dae3fd8221efa6f Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Thu, 8 Nov 2018 12:58:43 -0500 Subject: Add tests for TextProtoReader.readMIMEHeader() Original: https://github.com/denoland/deno_std/commit/36edda18ab75ea8287088478d46e89e5e8d6be0f --- headers.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 headers.ts (limited to 'headers.ts') diff --git a/headers.ts b/headers.ts new file mode 100644 index 000000000..9fe218195 --- /dev/null +++ b/headers.ts @@ -0,0 +1,34 @@ +// Fake headers to work around +// https://github.com/denoland/deno/issues/1173 + +function normalize(name: string, value?: string): [string, string] { + name = String(name).toLowerCase(); + value = String(value).trim(); + return [name, value]; +} + +export class Headers { + private map = new Map(); + + get(name: string): string | null { + let [name_] = normalize(name); + return this.map.get(name_); + } + + append(name: string, value: string): void { + [name, value] = normalize(name, value); + this.map.set(name, value); + } + + toString(): string { + let out = ""; + this.map.forEach((v, k) => { + out += `${k}: ${v}\n`; + }); + return out; + } + + [Symbol.iterator](): IterableIterator<[string, string]> { + return this.map[Symbol.iterator](); + } +} -- cgit v1.2.3