本文へ移動

ETag ミドルウェア ​

このミドルウェアで ETag ヘッダーを簡単に追加できます。

インポート ​

ts
import { Hono } from 'hono'
import { etag } from 'hono/etag'

使い方 ​

ts
const app = new Hono()

app.use('/etag/*', etag())
app.get('/etag/abc', (c) => {
  return c.text('Hono is cool')
})

保持するヘッダー ​

304 レスポンスには、同等の 200 OK レスポンスで送信されるヘッダーを含める必要があります。デフォルトでは Cache-Control、Content-Location、Date、ETag、Expires、Vary を保持します。

送信するヘッダーを追加するには、retainedHeaders オプションと、デフォルトのヘッダーを含む文字列配列変数 RETAINED_304_HEADERS を使用できます。

ts
import { etag, RETAINED_304_HEADERS } from 'hono/etag'

// ...

app.use(
  '/etag/*',
  etag({
    retainedHeaders: ['x-message', ...RETAINED_304_HEADERS],
  })
)

オプション ​

optional weak: boolean ​

弱い検証を使うか指定します。true なら値の先頭に w/ を付けます。デフォルトは false です。

optional retainedHeaders: string[] ​

304 レスポンスに保持するヘッダー。

optional generateDigest: (body: Uint8Array) => ArrayBuffer | Promise<ArrayBuffer> ​

カスタムのダイジェスト生成関数です。デフォルトは SHA-1 です。レスポンスボディを Uint8Array として受け取り、ハッシュを ArrayBuffer またはその Promise として返す必要があります。

MIT ライセンスで公開されています。