Skip to content
This repository was archived by the owner on Nov 27, 2019. It is now read-only.

Commit 8990968

Browse files
committed
Add passing context to the function handler in data.context field
1 parent ea4b676 commit 8990968

File tree

4 files changed

+20
-3
lines changed

4 files changed

+20
-3
lines changed

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ module.exports.lambda = R((data) => {
3030
});
3131
```
3232

33+
`data` object in function handler contains next fields:
34+
- `headers` - all headers from api gateway
35+
- `context` - context of current executed function
36+
- `authorizer` - data from authorizer.
37+
38+
Using this fields in post/get params if forbidden.
39+
3340
Also it's possible to pass `handler` as second param and `settings` object as first.
3441

3542
Default `settings` fields:

lib/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ function R(...params) {
5151
.then(usedSettings.validate)
5252
.then(() =>
5353
handler(Object.assign({}, data, {
54+
context,
5455
headers: event.headers,
5556
authorizer: event.requestContext && event.requestContext.authorizer,
5657
}))

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aws-response",
3-
"version": "1.4.0",
3+
"version": "1.5.0",
44
"description": "Aws response handler",
55
"main": "lib/index.js",
66
"scripts": {

test/index.test.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,16 @@ describe('Test handling request', () => {
4646
const event = require('./sample-requests/GET-request-aws.json');
4747

4848
const handler = R((data) => {
49+
console.log(data);
4950
expect(data).to.be.deep.equal(Object.assign(
50-
{}, event.queryStringParameters, { authorizer: undefined, headers: event.headers }));
51+
{},
52+
event.queryStringParameters,
53+
{
54+
authorizer: undefined,
55+
headers: event.headers,
56+
context: { logStreamName: '1', awsRequestId: '1' }
57+
}
58+
));
5159
return { ok: 1 };
5260
});
5361

@@ -79,7 +87,8 @@ describe('Test handling request', () => {
7987
expect(data).to.be.deep.equal(Object.assign({},
8088
JSON.parse(event.body),
8189
{ authorizer: undefined },
82-
{ headers: event.headers }
90+
{ headers: event.headers },
91+
{ context: { logStreamName: '1', awsRequestId: '1' } }
8392
));
8493
return Promise.resolve({ ok: 1 });
8594
});

0 commit comments

Comments
 (0)