forked from Kong/httpsnippet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathheaders.js
More file actions
39 lines (37 loc) · 1.05 KB
/
headers.js
File metadata and controls
39 lines (37 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
module.exports = {
/**
* Given a headers object retrieve the contents of a header out of it via a case-insensitive key.
*
* @param {object} headers
* @param {string} name
* @return {string}
*/
getHeader: (headers, name) => {
return headers[Object.keys(headers).find(k => k.toLowerCase() === name.toLowerCase())]
},
/**
* Given a headers object retrieve a specific header out of it via a case-insensitive key.
*
* @param {object} headers
* @param {string} name
* @return {string}
*/
getHeaderName: (headers, name) => {
// eslint-disable-next-line array-callback-return
return Object.keys(headers).find(k => {
if (k.toLowerCase() === name.toLowerCase()) {
return k
}
})
},
/**
* Determine if a given case-insensitive header exists within a header object.
*
* @param {object} headers
* @param {string} name
* @return {(integer|boolean)}
*/
hasHeader: (headers, name) => {
return Boolean(Object.keys(headers).find(k => k.toLowerCase() === name.toLowerCase()))
}
}