Middleware Compress
Ce middleware compresse le corps de la réponse selon l’en-tête de requête Accept-Encoding.
Information
Remarque : Sur Cloudflare Workers et Deno Deploy, le corps de la réponse est compressé automatiquement ; ce middleware n’est donc pas nécessaire.
Importation
import { Hono } from 'hono'
import { compress } from 'hono/compress'Utilisation
const app = new Hono()
app.use(compress())Options
facultatif encoding: 'gzip' | 'deflate'
Le format de compression autorisé pour la réponse : gzip ou deflate. Si cette option n’est pas définie, les deux sont autorisés et utilisés selon l’en-tête Accept-Encoding. gzip est prioritaire lorsque l’option n’est pas fournie et que le client indique les deux formats dans l’en-tête Accept-Encoding.
facultatif threshold: number
La taille minimale, en octets, à partir de laquelle compresser. La valeur par défaut est 1024 octets.
facultatif contentTypeFilter: RegExp | (contentType: string) => boolean
Une RegExp ou une fonction déterminant si la réponse doit être compressée d’après son Content-Type. Par défaut, une liste intégrée de types de contenu compressibles est utilisée.
Vous pouvez passer une RegExp pour ne compresser que les types de contenu correspondants :
// Compress only JSON responses
app.use(compress({ contentTypeFilter: /^application\/json/ }))Ou passer une fonction pour définir une logique personnalisée. La constante intégrée COMPRESSIBLE_CONTENT_TYPE_REGEX est également exportée afin de vous permettre d’étendre le comportement par défaut :
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',
})
)