diff --git a/db.sqlite b/db.sqlite index a16d98d..1339ebc 100644 Binary files a/db.sqlite and b/db.sqlite differ diff --git a/db.sqlite-shm b/db.sqlite-shm index 3504600..fe9ac28 100644 Binary files a/db.sqlite-shm and b/db.sqlite-shm differ diff --git a/db.sqlite-wal b/db.sqlite-wal index ca5d8ce..e69de29 100644 Binary files a/db.sqlite-wal and b/db.sqlite-wal differ diff --git a/server/middleware/compress.ts b/server/middleware/compress.ts new file mode 100644 index 0000000..91ce94d --- /dev/null +++ b/server/middleware/compress.ts @@ -0,0 +1,20 @@ +import { defineEventHandler, setResponseHeader } from 'h3'; + +export default defineEventHandler(async (event) => { + const acceptEncoding = event.headers.get('accept-encoding') || ''; + if (!acceptEncoding.includes('zstd')) return; + + const _end = event.node.res.end; + //@ts-expect-error + event.node.res.end = async (body: any, ...args: any[]) => { + const buffer = typeof body === "string" ? new TextEncoder().encode(body) : body; + + if(buffer) + { + setResponseHeader(event, "Content-Encoding", "zstd"); + setResponseHeader(event, "Vary", "Accept-Encoding"); + //@ts-expect-error + _end.call(event.node.res, await Bun.zstdCompress(buffer), ...args); + } + }; +}); \ No newline at end of file