es-fresh
TypeScript icon, indicating that this package has built-in type declarations

0.0.11 • Public • Published

es-fresh

Top language Vulnerabilities Version Node Version Last commit

This is a copy of @foxify/fresh package but with ESM and CommonJS targets.

HTTP response freshness testing.

Install

pnpm i es-fresh

API

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

Readme

Keywords

none

Package Sidebar

Install

npm i es-fresh

Weekly Downloads

50,699

Version

0.0.11

License

MIT

Unpacked Size

5.17 kB

Total Files

5

Last publish

Collaborators

  • dropthebeatbro