UNPKG

1.31 kBJavaScriptView Raw
1
2/**
3 * Return the mime type for the given `str`.
4 *
5 * @param {String} str
6 * @return {String}
7 * @api private
8 */
9
10exports.type = function(str){
11 return str.split(/ *; */).shift();
12};
13
14/**
15 * Return header field parameters.
16 *
17 * @param {String} str
18 * @return {Object}
19 * @api private
20 */
21
22exports.params = function(str){
23 return str.split(/ *; */).reduce(function(obj, str){
24 var parts = str.split(/ *= */);
25 var key = parts.shift();
26 var val = parts.shift();
27
28 if (key && val) obj[key] = val;
29 return obj;
30 }, {});
31};
32
33/**
34 * Parse Link header fields.
35 *
36 * @param {String} str
37 * @return {Object}
38 * @api private
39 */
40
41exports.parseLinks = function(str){
42 return str.split(/ *, */).reduce(function(obj, str){
43 var parts = str.split(/ *; */);
44 var url = parts[0].slice(1, -1);
45 var rel = parts[1].split(/ *= */)[1].slice(1, -1);
46 obj[rel] = url;
47 return obj;
48 }, {});
49};
50
51/**
52 * Strip content related fields from `header`.
53 *
54 * @param {Object} header
55 * @return {Object} header
56 * @api private
57 */
58
59exports.cleanHeader = function(header, shouldStripCookie){
60 delete header['content-type'];
61 delete header['content-length'];
62 delete header['transfer-encoding'];
63 delete header['host'];
64 if (shouldStripCookie) {
65 delete header['cookie'];
66 }
67 return header;
68};
\No newline at end of file