MCPcopy
hub / github.com/tinyhttp/tinyhttp / getFreshOrStale

Function getFreshOrStale

packages/req/src/index.ts:30–49  ·  view source on GitHub ↗
(
  req: Pick<Request, 'headers' | 'method'>,
  res: Pick<Response, 'getHeader' | 'statusCode'>
)

Source from the content-addressed store, hash-verified

28}
29
30export const getFreshOrStale = (
31 req: Pick<Request, 'headers' | 'method'>,
32 res: Pick<Response, 'getHeader' | 'statusCode'>
33) => {
34 const method = req.method
35 const status = res.statusCode
36
37 // GET or HEAD for weak freshness validation only
38 if (method !== 'GET' && method !== 'HEAD') return false
39
40 // 2xx or 304 as per rfc2616 14.26
41 if ((status >= 200 && status < 300) || status === 304) {
42 return fresh(req.headers, {
43 etag: res.getHeader('ETag'),
44 'last-modified': res.getHeader('Last-Modified')
45 })
46 }
47
48 return false
49}
50
51export const checkIfXMLHttpRequest = (req: Pick<Request, 'headers'>) =>
52 req.headers['X-Requested-With'] === 'XMLHttpRequest'

Callers 1

req.test.tsFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected