Initial commit for OpenECOMP SDN-C OA&M
[sdnc/oam.git] / dgbuilder / dgeflows / node_modules / cookie-parser / index.js
1 /*!
2  * cookie-parser
3  * MIT Licensed
4  */
5
6 /**
7  * Module dependencies.
8  */
9
10 var cookie = require('cookie');
11 var parse = require('./lib/parse');
12
13 /**
14  * Parse Cookie header and populate `req.cookies`
15  * with an object keyed by the cookie names.
16  *
17  * @param {String} [secret]
18  * @param {Object} [options]
19  * @return {Function}
20  * @api public
21  */
22
23 exports = module.exports = function cookieParser(secret, options){
24   return function cookieParser(req, res, next) {
25     if (req.cookies) return next();
26     var cookies = req.headers.cookie;
27
28     req.secret = secret;
29     req.cookies = Object.create(null);
30     req.signedCookies = Object.create(null);
31
32     // no cookies
33     if (!cookies) {
34       return next();
35     }
36
37     req.cookies = cookie.parse(cookies, options);
38
39     // parse signed cookies
40     if (secret) {
41       req.signedCookies = parse.signedCookies(req.cookies, secret);
42       req.signedCookies = parse.JSONCookies(req.signedCookies);
43     }
44
45     // parse JSON cookies
46     req.cookies = parse.JSONCookies(req.cookies);
47
48     next();
49   };
50 };
51
52 /**
53  * Export parsing functions.
54  */
55
56 exports.JSONCookie = parse.JSONCookie;
57 exports.JSONCookies = parse.JSONCookies;
58 exports.signedCookie = parse.signedCookie;
59 exports.signedCookies = parse.signedCookies;