Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

vary

jshttp101.4mMIT1.1.2TypeScript support: definitely-typed

Manipulate the HTTP Vary header

http, res, vary

readme

vary

NPM Version NPM Downloads Node.js Version Build Status Test Coverage

Manipulate the HTTP Vary header

Installation

This is a Node.js module available through the npm registry. Installation is done using the npm install command:

$ npm install vary

API

var vary = require('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.

// Append "Origin" to the Vary header of the response
vary(res, 'Origin')

vary.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"
vary.append('Accept, User-Agent', 'Origin')

Examples

Updating the Vary header when content is based on it

var http = require('http')
var vary = require('vary')

http.createServer(function onRequest (req, res) {
  // about to user-agent sniff
  vary(res, 'User-Agent')

  var ua = req.headers['user-agent'] || ''
  var 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')
})

Testing

$ npm test

License

MIT

changelog

1.1.2 / 2017-09-23

  • perf: improve header token parsing speed

1.1.1 / 2017-03-20

  • perf: hoist regular expression

1.1.0 / 2015-09-29

  • Only accept valid field names in the field argument
    • Ensures the resulting string is a valid HTTP header value

1.0.1 / 2015-07-08

  • Fix setting empty header from empty field
  • perf: enable strict mode
  • perf: remove argument reassignments

1.0.0 / 2014-08-10

  • Accept valid Vary header string as field
  • Add vary.append for low-level string manipulation
  • Move to jshttp orgainzation

0.1.0 / 2014-06-05

  • Support array of fields to set

0.0.0 / 2014-06-04

  • Initial release