Skip to content

Commit 7a21aca

Browse files
committed
update signature params to be undefined instead of null
1 parent ae1c4c6 commit 7a21aca

File tree

9 files changed

+1633
-885
lines changed

9 files changed

+1633
-885
lines changed

.npmrc

Lines changed: 0 additions & 1 deletion
This file was deleted.

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html)
66

7+
## [3.0.1]  (2020-01-20)
8+
9+
### Changed
10+
11+
- Missing signature params as undefined instead of null to allow for default values
12+
- Updated libraries
13+
714
## [3.0.0]  (2020-01-05)
815

916
### Changed

package-lock.json

Lines changed: 1591 additions & 865 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@manwaring/lambda-wrapper",
33
"description": "A lambda handler wrapper to abstract common functionality and provide useful defaults",
4-
"version": "3.0.0",
4+
"version": "3.0.1",
55
"scripts": {
66
"publish-please-dry-run": "publish-please --dry-run",
77
"publish-please": "publish-please",
@@ -16,24 +16,24 @@
1616
"cfn-response": "^1.0.1"
1717
},
1818
"devDependencies": {
19-
"@babel/core": "^7.7.7",
20-
"@babel/plugin-proposal-class-properties": "^7.7.4",
21-
"@babel/preset-env": "^7.7.7",
22-
"@babel/preset-typescript": "^7.7.7",
19+
"@babel/core": "^7.8.3",
20+
"@babel/plugin-proposal-class-properties": "^7.8.3",
21+
"@babel/preset-env": "^7.8.3",
22+
"@babel/preset-typescript": "^7.8.3",
2323
"@serverless/event-mocks": "^1.1.1",
2424
"@types/aws-lambda": "^8.10.39",
2525
"@types/cfn-response": "^1.0.1",
26-
"@types/jest": "^24.0.25",
27-
"@types/node": "^13.1.4",
28-
"aws-lambda": "^1.0.4",
29-
"aws-sdk": "^2.597.0",
26+
"@types/jest": "^24.9.0",
27+
"@types/node": "^13.1.8",
28+
"aws-lambda": "^1.0.5",
29+
"aws-sdk": "^2.606.0",
3030
"babel-jest": "^24.9.0",
3131
"codecov": "^3.6.1",
3232
"husky": "^2.7.0",
3333
"jest": "^24.9.0",
3434
"publish-please": "^5.5.1",
3535
"rimraf": "^3.0.0",
36-
"typescript": "^3.7.4"
36+
"typescript": "^3.7.5"
3737
},
3838
"husky": {
3939
"hooks": {

src/api/parser.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,20 @@ describe('Request parsing', () => {
7474
expect(headers).toBeFalsy();
7575
expect(testRequest).toBeFalsy();
7676
});
77+
78+
it('Supports default values in method signature', () => {
79+
// @ts-ignore
80+
const event = createEvent('aws:apiGateway', {});
81+
delete event.body;
82+
delete event.headers;
83+
delete event.pathParameters;
84+
delete event.queryStringParameters;
85+
const { path = {}, query = {} } = new Request(event).getProperties();
86+
87+
const { notThere = 2 } = query;
88+
expect(notThere).toEqual(2);
89+
90+
const { alsoNotThere = 3 } = path;
91+
expect(alsoNotThere).toEqual(3);
92+
});
7793
});

src/api/parser.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ export class Request {
99

1010
getProperties(): any {
1111
const event = this.event;
12-
const path = event.pathParameters ? event.pathParameters : null;
13-
const query = event.queryStringParameters ? event.queryStringParameters : null;
14-
const auth = event.requestContext && event.requestContext.authorizer ? event.requestContext.authorizer : null;
15-
const headers = event.headers ? event.headers : null;
12+
const path = event.pathParameters ? event.pathParameters : undefined;
13+
const query = event.queryStringParameters ? event.queryStringParameters : undefined;
14+
const auth = event.requestContext && event.requestContext.authorizer ? event.requestContext.authorizer : undefined;
15+
const headers = event.headers ? event.headers : undefined;
1616
const body = new Body(event.body, headers).getParsedBody();
1717
const TEST_REQUEST_HEADER = process.env.TEST_REQUEST_HEADER || 'Test-Request';
1818
const testRequest = headers && headers[TEST_REQUEST_HEADER] ? JSON.parse(headers[TEST_REQUEST_HEADER]) : false;

src/dynamodb-stream/parser.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,14 @@ describe('DynamoDB stream parsing', () => {
117117
});
118118
expect(versions).toContainEqual({
119119
newVersion: { Message: 'hasta la vista', Id: 456 },
120-
oldVersion: null,
120+
oldVersion: undefined,
121121
keys: { Id: 456 },
122122
tableName: 'table',
123123
tableArn: 'arn:aws:dynamodb:us-east-1:1234567890:table/table',
124124
eventName: 'INSERT'
125125
});
126126
expect(versions).toContainEqual({
127-
newVersion: null,
127+
newVersion: undefined,
128128
oldVersion: { Message: 'buongiorno', Id: 789 },
129129
keys: { Id: 789 },
130130
tableName: 'table',

src/dynamodb-stream/parser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ export class DynamoDBStreamParser {
2626
private parseVersions(record: DynamoDBRecord) {
2727
const { eventName } = record;
2828
const { NewImage, OldImage, Keys } = record.dynamodb;
29-
const newVersion = NewImage ? DynamoDB.Converter.unmarshall(NewImage) : null;
30-
const oldVersion = OldImage ? DynamoDB.Converter.unmarshall(OldImage) : null;
29+
const newVersion = NewImage ? DynamoDB.Converter.unmarshall(NewImage) : undefined;
30+
const oldVersion = OldImage ? DynamoDB.Converter.unmarshall(OldImage) : undefined;
3131
const keys = DynamoDB.Converter.unmarshall(Keys);
3232
const { tableName, tableArn } = this.getTableInformation(record);
3333
const version: Version = { newVersion, oldVersion, keys, tableName, tableArn, eventName };

src/dynamodb-stream/wrapper.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ describe('DynamoDB Stream wrapper', () => {
2828
expect(versions).toEqual([
2929
{
3030
newVersion: { Message: 'New item!', Id: 101 },
31-
oldVersion: null,
31+
oldVersion: undefined,
3232
keys: { Id: 101 },
3333
tableName: 'images',
3434
tableArn: 'arn:aws:dynamodb:us-east-1:123456789012:table/images',

0 commit comments

Comments
 (0)