UNPKG

899 BJavaScriptView Raw
1var middleware = require('./middleware')
2
3function storeCookies (cookies, url, header) {
4 if (header) {
5 var headers =
6 header instanceof Array
7 ? header
8 : [header]
9
10 headers.forEach(function (setCookieHeader) {
11 cookies.setCookieSync(setCookieHeader, url)
12 })
13 }
14}
15
16module.exports = middleware('cookies', function (request, next, client) {
17 var cookies
18
19 if (client._options.cookies === true) {
20 var toughCookie = require('tough-cookie')
21 cookies = request.options.cookies = client._options.cookies = new toughCookie.CookieJar()
22 } else {
23 cookies = request.options.cookies
24 }
25
26 if (cookies) {
27 request.headers.cookie = cookies.getCookieStringSync(request.url)
28 return next().then(function (response) {
29 storeCookies(cookies, response.url, response.headers['set-cookie'])
30 return response
31 })
32 } else {
33 return next()
34 }
35})