From 975b007cb1cad8234cbe98f346fd17863f5d1069 Mon Sep 17 00:00:00 2001 From: Rizky Date: Fri, 21 Jun 2024 13:34:53 +0700 Subject: [PATCH] fix --- pkgs/core/api/_proxy.ts | 48 ++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/pkgs/core/api/_proxy.ts b/pkgs/core/api/_proxy.ts index aab1f54d..433ece92 100644 --- a/pkgs/core/api/_proxy.ts +++ b/pkgs/core/api/_proxy.ts @@ -1,6 +1,6 @@ import brotliPromise from "brotli-wasm"; import { apiContext } from "service-srv"; -import { gzipAsync } from "utils/diff/diff"; +import { gunzipAsync, gzipAsync } from "utils/diff/diff"; import { decompress } from "@cloudpss/zstd"; const brotli = await brotliPromise; @@ -17,39 +17,39 @@ export const _ = { const body = await req.arrayBuffer(); const headers = {} as Record; req.headers.forEach((v, k) => { - // if (k.startsWith("sec-")) return; - // if (k.startsWith("connection")) return; - // if (k.startsWith("dnt")) return; - // if (k.startsWith("host")) return; + if (k.startsWith("sec-")) return; + if (k.startsWith("connection")) return; + if (k.startsWith("dnt")) return; + if (k.startsWith("host")) return; headers[k] = v; }); - return await fetch(url as any, { + const res = await fetch(url as any, { method: req.method || "POST", headers, body, }); - // let res_body: any = null; - // const res_headers: any = {}; - // res.headers.forEach((v, k) => { - // res_headers[k] = v; - // }); - // res_body = await res.arrayBuffer(); + let res_body: any = null; + const res_headers: any = {}; + res.headers.forEach((v, k) => { + res_headers[k] = v; + }); + res_body = await res.arrayBuffer(); - // let enc = res_headers["content-encoding"]; - // if (res_headers["content-encoding"] === "gzip") { - // res_body = await gzipAsync(new Uint8Array(res_body)); - // delete res_headers["content-encoding"]; - // } else if (res_headers["content-encoding"] === "zstd") { - // res_body = Buffer.from(await decompress(res_body)); - // delete res_headers["content-encoding"]; - // } else if (res_headers["content-encoding"] === "br") { - // res_body = Buffer.from(brotli.decompress(res_body)); - // delete res_headers["content-encoding"]; - // } + let enc = res_headers["content-encoding"]; + if (res_headers["content-encoding"] === "gzip") { + res_body = Bun.gunzipSync(res_body); + delete res_headers["content-encoding"]; + } else if (res_headers["content-encoding"] === "zstd") { + res_body = await decompress(res_body); + delete res_headers["content-encoding"]; + } else if (res_headers["content-encoding"] === "br") { + res_body = brotli.decompress(res_body); + delete res_headers["content-encoding"]; + } - // return new Response(res_body, { headers: res_headers }); + return new Response(res_body, { headers: res_headers }); } catch (e: any) { new Response( JSON.stringify({