Frontend/25_02_24/node_modules/@tinyhttp/req/dist/index.js

41 lines
1.4 KiB
JavaScript
Raw Normal View History

2025-02-25 08:55:29 +00:00
import { parseRange } from 'header-range-parser';
import { typeIs } from '@tinyhttp/type-is';
import { fresh } from './fresh.js';
export * from './accepts.js';
export * from '@tinyhttp/url';
export const getRequestHeader = (req) => {
return (header) => {
const lc = header.toLowerCase();
switch (lc) {
case 'referer':
case 'referrer':
return (req.headers.referrer || req.headers.referer);
default:
return req.headers[lc];
}
};
};
export const getRangeFromHeader = (req) => (size, options) => {
const range = getRequestHeader(req)('range');
if (!range)
return;
return parseRange(size, range, options);
};
export const getFreshOrStale = (req, res) => {
const method = req.method;
const status = res.statusCode;
// GET or HEAD for weak freshness validation only
if (method !== 'GET' && method !== 'HEAD')
return false;
// 2xx or 304 as per rfc2616 14.26
if ((status >= 200 && status < 300) || status === 304) {
return fresh(req.headers, {
etag: res.getHeader('ETag'),
'last-modified': res.getHeader('Last-Modified')
});
}
return false;
};
export const checkIfXMLHttpRequest = (req) => req.headers['x-requested-with'] === 'XMLHttpRequest';
export const reqIs = (req) => (...types) => typeIs(req.headers['content-type'], ...types);
//# sourceMappingURL=index.js.map