Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

tinyhttp/vary

Repository files navigation

@tinyhttp/vary

Version Downloads GitHub Workflow Status Codecov

vary rewrite in TypeScript with ESM and CommonJS targets

Manipulate the HTTP Vary header

Install

pnpm i @tinyhttp/vary

API

import { vary, append } from '@tinyhttp/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

About

vary rewrite in TypeScript for ESM

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

AltStyle によって変換されたページ (->オリジナル) /