forked from stepro/service-a
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontextful.js
More file actions
29 lines (27 loc) · 905 Bytes
/
contextful.js
File metadata and controls
29 lines (27 loc) · 905 Bytes
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
var metaHeader = "context-headers";
function init(options) {
if (options.metaHeader) {
metaHeader = options.metaHeader.toLowerCase();
}
}
function from(req, headers) {
headers = headers || {};
if (req.headers[metaHeader.toLowerCase()]) {
headers[metaHeader] = req.headers[metaHeader];
headers[metaHeader].split(",").forEach(function (header) {
header = header.toLowerCase();
if (header[header.length - 1] === "*") {
header = header.slice(0, -1);
for (var candidate in req.headers) {
if (candidate.indexOf(header) === 0) {
headers[candidate] = req.headers[candidate];
}
}
} else if (req.headers[header]) {
headers[header] = req.headers[header];
}
});
}
return headers;
}
exports.from = from;