summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js
blob: b8f13cf83195ab30df90479029a6396997ef4e8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const url = require('url')

module.exports = setWarning

function setWarning (reqOrRes, code, message, replace) {
  //   Warning    = "Warning" ":" 1#warning-value
  // warning-value = warn-code SP warn-agent SP warn-text [SP warn-date]
  // warn-code  = 3DIGIT
  // warn-agent = ( host [ ":" port ] ) | pseudonym
  //                 ; the name or pseudonym of the server adding
  //                 ; the Warning header, for use in debugging
  // warn-text  = quoted-string
  // warn-date  = <"> HTTP-date <">
  // (https://tools.ietf.org/html/rfc2616#section-14.46)
  const host = url.parse(reqOrRes.url).host
  const jsonMessage = JSON.stringify(message)
  const jsonDate = JSON.stringify(new Date().toUTCString())
  const header = replace ? 'set' : 'append'

  reqOrRes.headers[header](
    'Warning',
    `${code} ${host} ${jsonMessage} ${jsonDate}`
  )
}