Compress-Middleware
Diese Middleware komprimiert den Antwort-Body entsprechend dem Anfrage-Header Accept-Encoding.
Info
Hinweis: Auf Cloudflare Workers und Deno Deploy wird der Antwort-Body automatisch komprimiert. Deshalb musst du diese Middleware dort nicht verwenden.
Import
import { Hono } from 'hono'
import { compress } from 'hono/compress'Verwendung
const app = new Hono()
app.use(compress())Optionen
optional encoding: 'gzip' | 'deflate'
Das für die Antwortkomprimierung zulässige Verfahren: entweder gzip oder deflate. Wenn nicht angegeben, sind beide erlaubt und werden anhand des Headers Accept-Encoding ausgewählt. Wenn diese Option fehlt und der Client beide im Header Accept-Encoding angibt, wird gzip bevorzugt.
optional threshold: number
Die Mindestgröße für die Komprimierung in Bytes. Der Standardwert ist 1024 Bytes.
optional contentTypeFilter: RegExp | (contentType: string) => boolean
Ein RegExp oder eine Funktion, die anhand des Content-Type entscheidet, ob die Antwort komprimiert wird. Standardmäßig wird eine integrierte Liste komprimierbarer Content-Types verwendet.
Du kannst einen RegExp übergeben, um nur passende Content-Types zu komprimieren:
// Compress only JSON responses
app.use(compress({ contentTypeFilter: /^application\/json/ }))Oder übergib eine Funktion für eigene Logik. Der integrierte COMPRESSIBLE_CONTENT_TYPE_REGEX wird ebenfalls exportiert, damit du das Standardverhalten erweitern kannst:
import {
compress,
COMPRESSIBLE_CONTENT_TYPE_REGEX,
} from 'hono/compress'
// Compress the default Content-Types plus a custom one
app.use(
compress({
contentTypeFilter: (type) =>
COMPRESSIBLE_CONTENT_TYPE_REGEX.test(type) ||
type === 'application/x-myformat',
})
)