@otterhttp/vary
v0.2.0
Published
vary rewrite in TypeScript and ESM
Downloads
109
Maintainers
Readme
@otterhttp/vary
vary
rewrite in TypeScript with ESM and CommonJS targets
Manipulate the HTTP Vary header
Install
pnpm i @otterhttp/vary
API
import { vary, append } from '@otterhttp/vary'
vary(res, field)
Adds the given header field
to the Vary
response header of res
.
This can be a string of a single field, a string of a valid Vary
header, or an array of multiple fields.
This will append the header if not already listed, otherwise leaves it listed in the current location.
vary(res, 'Origin')
append(header, field)
Adds the given header field
to the Vary
response header string header
.
This can be a string of a single field, a string of a valid Vary
header,
or an array of multiple fields.
This will append the header if not already listed, otherwise leaves it listed in the current location. The new header string is returned.
// Get header string appending "Origin" to "Accept, User-Agent"
append('Accept, User-Agent', 'Origin')
Examples
import { createServer } from 'node:http'
import { vary } from '@tinyhttp/vary'
createServer((req, res) => {
// about to user-agent sniff
vary(res, 'User-Agent')
const ua = req.headers['user-agent'] || ''
const isMobile = /mobi|android|touch|mini/i.test(ua)
// serve site, depending on isMobile
res.setHeader('Content-Type', 'text/html')
res.end('You are (probably) ' + (isMobile ? '' : 'not ') + 'a mobile user')
})
License
MIT © v1rtl