es-fresh
v0.0.11
Published
fresh rewrite in TypeScript with ESM targets
Readme
es-fresh
This is a copy of @foxify/fresh package but with ESM and CommonJS targets.
HTTP response freshness testing.
Install
pnpm i es-freshAPI
import fresh from 'es-fresh'fresh(reqHeaders, resHeaders)
Check freshness of the response using request and response headers.
When the response is still "fresh" in the client's cache true is
returned, otherwise false is returned to indicate that the client
cache is now stale and the full response should be sent.
When a client sends the Cache-Control: no-cache request header to
indicate an end-to-end reload request, this module will return false
to make handling these requests transparent.
Example
import fresh from 'es-fresh'
import { createServer } from 'http'
function isFresh(req, res) {
return fresh(req.headers, {
etag: res.getHeader('ETag'),
'last-modified': res.getHeader('Last-Modified'),
})
}
createServer((req, res) => {
// perform server logic
// ... including adding ETag / Last-Modified response headers
if (isFresh(req, res)) {
// client has a fresh copy of resource
res.statusCode = 304
res.end()
return
}
// send the resource
res.statusCode = 200
res.end('hello, world!')
}).listen(3000)License
MIT © v1rtl
