UNPKG

1.26 kBJavaScriptView Raw
1// src/cors.ts
2var a = {
3 origin: "*",
4 methods: ["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE"],
5 headers: [],
6 expose: []
7};
8function l(o, t, s) {
9 let e = t ? {...a, ...t} : a;
10 o.setHeader("Access-Control-Allow-Origin", e.origin), e.origin !== "*" && o.headers.append("Vary", "Origin"), e.credentials && o.setHeader("Access-Control-Allow-Credentials", "true"), e.expose.length && o.setHeader("Access-Control-Expose-Headers", e.expose), s && (e.maxage != null && o.setHeader("Access-Control-Max-Age", e.maxage), e.methods.length && o.setHeader("Access-Control-Allow-Methods", e.methods), e.headers.length && o.setHeader("Access-Control-Allow-Headers", e.headers));
11}
12function g(o = {}) {
13 let t = o.origin = o.origin || "*", s = typeof t == "string";
14 return function(e, i) {
15 let r, n = e.method === "OPTIONS";
16 s || (r = e.headers.get("Origin") || "", o.origin = t === !0 && r || t instanceof RegExp && t.test(r) && r || "false"), l(i, o, n), n && (o.headers || (r = e.headers.get("Access-Control-Request-Headers"), r && i.setHeader("Access-Control-Allow-Headers", r), i.headers.append("Vary", "Access-Control-Request-Headers")), i.statusCode = 204, i.end(null));
17 };
18}
19
20
21exports.config = a;
22exports.headers = l;
23exports.preflight = g;
\No newline at end of file