forked from CodeGenieApp/serverless-express
-
Notifications
You must be signed in to change notification settings - Fork 6
/
middleware.js
23 lines (19 loc) · 802 Bytes
/
middleware.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
module.exports.eventContext = options => (req, res, next) => {
options = options || {} // defaults: {reqPropKey: 'apiGateway', deleteHeaders: true}
const reqPropKey = options.reqPropKey || 'edge'
const deleteHeaders = options.deleteHeaders === undefined ? true : options.deleteHeaders
if (!req.headers['x-edge-event'] || !req.headers['x-edge-context']) {
console.error('Missing x-edge-event or x-edge-context header(s)')
next()
return
}
req[reqPropKey] = {
event: JSON.parse(decodeURIComponent(req.headers['x-edge-event'])),
context: JSON.parse(decodeURIComponent(req.headers['x-edge-context']))
}
if (deleteHeaders) {
delete req.headers['x-edge-event']
delete req.headers['x-edge-context']
}
next()
}