summaryrefslogtreecommitdiff
path: root/headers.ts
diff options
context:
space:
mode:
Diffstat (limited to 'headers.ts')
-rw-r--r--headers.ts34
1 files changed, 34 insertions, 0 deletions
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<string, string>();
+
+ 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]();
+ }
+}