From 81f191d5f62d58a223c0192aba66ab853aa55e54 Mon Sep 17 00:00:00 2001 From: Peaceultime Date: Sun, 14 Sep 2025 20:46:48 +0200 Subject: [PATCH] Compress middleware --- db.sqlite | Bin 761856 -> 761856 bytes db.sqlite-shm | Bin 32768 -> 32768 bytes db.sqlite-wal | Bin 32992 -> 16512 bytes server/middleware/compress.ts | 17 +++++++++++++++++ 4 files changed, 17 insertions(+) create mode 100644 server/middleware/compress.ts diff --git a/db.sqlite b/db.sqlite index 61ed8486f101ef7f1642ef0fc5177d14d92be4bf..1aa3cf4dceac0f9e38d07d0535ea04ff2d520828 100644 GIT binary patch delta 297 zcmZoTpx1CfZv$h1CT|S`2hS%4UO!$1o=^N`{2u&Ld~f*np}{vipEesRoZy-KDW;2s ze+i@07Oy3;!D4ME)lJ2!1_Yb6zyS*Ur}t zbi-qw$-KFBEd19PD<}8os<8qY{*041#Hz6I1DUFflkdf(z*w(<**1+7>z|z*h+Sb6<*1+D@z|q#g+19|d Itbtnr0H?@W+5i9m delta 297 zcmXwzF-yZx6or%KB^vwgeVsc63_{8yC>0d9ZcgG-aA;C=Z@M{%$fd(8)WPBX1#yrf zmD*K;lar%}iVm)s@(X;8c<%CX&b^mIc}#gcvkxOYv5=P*Zi{R5;0MVCz{Ddg2eilF-E}hU`DyOT&3DJF}~^`TKCa;Vkmbh!ok1YKk01Op&X| QQ?#OJRgte~?S|^XFRZmyDgXcg diff --git a/db.sqlite-shm b/db.sqlite-shm index 95530a0c9878c07e09c5323094325064e1bbb687..9c6196e32c2604815efcb4bda1d0b69ad260bcd5 100644 GIT binary patch delta 160 zcmZo@U}|V!s+V}A%K!o_K+MR%AONCw0kQ7XH@abJk$wyQy_k3IcqZ$=2;=i_GM6nO sRXxxsFaVkR9|=H(C)P`DT;UTq@qhp`BLnlsjXzl@e+XyUxQRyt08JV<1ONa4 delta 165 zcmZo@U}|V!s+V}A%K!o#K+MR%AONCw0dcO*8_`QPvWYqeUA=E7d9FH_5FEF0SLS6> w)dP(J1CY7@kpNV9V!h%*Md6aUrJ$0NrFV8UO$Q diff --git a/db.sqlite-wal b/db.sqlite-wal index 54e6c1bbe4a18e0204f55a2d8dbefa5476a4ff66..31062267a985f82dfa7de8c08914b74083690a4e 100644 GIT binary patch delta 339 zcmaFR$kfot7-e41*2JLuNP>YufB^&+{ChF)-0@7-;tPzM4HXxv0fpFrco$6EcG-^~ z+pX{ZYufB^(_4!U~ZPV!u(pmW5&DfZufpb#4n?}CYMcDQzE z^GW7^ynIOvd_12R_)Peh@UijU;9bRA!|TVZ!1IZ}jNgM_ito+Fs3=|*9RZfm$vb$p zSakS-jAtMQACMu!2W0R98BQPuH;_@lw~=|vA%@8+{5nhrY9|Nrcd_X30L35hCkVjo zp3wXAS-i_C`ON_WfB9{<9;iik98X2s+N(1CZZvh=W9*LmHt)6T+1a1Z!yNY*-El{J z)jw$L-ycU)$34UDxD=OU8Sk@waK}AEcbx0i#c%KOSKg(a<91-ir|27<+(cQMOW+`5 I-g;0D03lP%a{vGU diff --git a/server/middleware/compress.ts b/server/middleware/compress.ts new file mode 100644 index 0000000..610178c --- /dev/null +++ b/server/middleware/compress.ts @@ -0,0 +1,17 @@ +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; + + 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