Skip to content

Commit d3aa13a

Browse files
committed
make wrapper generics optional
1 parent 1983296 commit d3aa13a

File tree

10 files changed

+17
-13
lines changed

10 files changed

+17
-13
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ 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.3.2]  (2020-05-07)
8+
9+
### Changed
10+
11+
- Make generics optional by defaulting to any
12+
713
## [3.3.1]  (2020-05-07)
814

915
### Changed
@@ -195,6 +201,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/),
195201
- Update older libraries
196202
- Now publish from Git tags instead of master pushes
197203

204+
[3.3.2]: https://github.com/manwaring/lambda-wrapper/compare/v3.3.1...v3.3.2
198205
[3.3.1]: https://github.com/manwaring/lambda-wrapper/compare/v3.3.0...v3.3.1
199206
[3.3.0]: https://github.com/manwaring/lambda-wrapper/compare/v3.2.0...v3.3.0
200207
[3.2.0]: https://github.com/manwaring/lambda-wrapper/compare/v3.1.3...v3.2.0

src/api/wrapper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { APIGatewayEvent, Context, Callback } from 'aws-lambda';
22
import { Request } from './parser';
33
import { success, invalid, notFound, notAuthorized, error, redirect, ApiResponse } from './responses';
44

5-
export function api<T>(
5+
export function api<T = any>(
66
custom: (props: ApiSignature<T>) => any
77
): (event: APIGatewayEvent, context: Context, callback: Callback) => any {
88
return function handler(event: APIGatewayEvent) {
@@ -26,7 +26,7 @@ export function api<T>(
2626
};
2727
}
2828

29-
export interface ApiSignature<T> {
29+
export interface ApiSignature<T = any> {
3030
event: APIGatewayEvent; // original event
3131
body: T; // JSON parsed body payload if exists (otherwise undefined)
3232
path: { [name: string]: string }; // path param payload as key-value pairs if exists (otherwise undefined)

src/dynamodb-stream/parser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { DynamoDBStreamEvent, DynamoDBRecord } from 'aws-lambda';
22
import { DynamoDB, DynamoDBStreams } from 'aws-sdk';
33

4-
export class DynamoDBStreamParser<T> {
4+
export class DynamoDBStreamParser<T = any> {
55
constructor(private event: DynamoDBStreamEvent) {}
66

77
getVersions(): { newVersions: any[]; oldVersions: any[]; versions: Version<T>[] } {

src/dynamodb-stream/wrapper.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ describe('DynamoDB Stream wrapper', () => {
66
const callback = jest.fn((err, result) => (err ? new Error(err) : result));
77

88
it('Has expected properties and response function', () => {
9-
// @ts-ignore
109
function custom({ event, newVersions, oldVersions, versions, success, error }: DynamoDBStreamSignature) {
1110
expect(event).toEqual(requestEvent);
1211
expect(newVersions).toEqual([{ Message: 'This item has changed', Id: 101 }]);

src/dynamodb-stream/wrapper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { success, error } from './responses';
55

66
const metrics = new Metrics('DynamoDB Stream');
77

8-
export function dynamodbStream<T>(
8+
export function dynamodbStream<T = any>(
99
custom: (props: DynamoDBStreamSignature<T>) => any
1010
): (event: DynamoDBStreamEvent, context: Context, callback: Callback) => any {
1111
return function handler(event: DynamoDBStreamEvent, context: Context, callback: Callback) {
@@ -15,7 +15,7 @@ export function dynamodbStream<T>(
1515
};
1616
}
1717

18-
export interface DynamoDBStreamSignature<T> {
18+
export interface DynamoDBStreamSignature<T = any> {
1919
event: DynamoDBStreamEvent; // original event
2020
newVersions: T[]; // array of all unmarshalled javascript objects of new images
2121
oldVersions: T[]; // array of all unmarshalled javascript objects of old images

src/generic/wrapper.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ describe('Stream wrapper', () => {
1919
const callback = jest.fn((err, result) => (err ? new Error(err) : result));
2020

2121
it('Has expected properties and response funtions', () => {
22-
// @ts-ignore
2322
function custom({ event, success, error }: WrapperSignature) {
2423
expect(event).toEqual(requestEvent);
2524
expect(success).toBeInstanceOf(Function);

src/generic/wrapper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { success, error } from './responses';
44

55
const metrics = new Metrics('Generic');
66

7-
export function wrapper<T>(
7+
export function wrapper<T = any>(
88
custom: (props: WrapperSignature<T>) => any
99
): (event: any, context: Context, callback: Callback) => any {
1010
return function handler(event: any, context: Context, callback: Callback) {
@@ -13,7 +13,7 @@ export function wrapper<T>(
1313
};
1414
}
1515

16-
export interface WrapperSignature<T> {
16+
export interface WrapperSignature<T = any> {
1717
event: T; // original event
1818
success(message?: any): any; // logs and returns the message
1919
error(error?: any): void; // logs the error and throws

src/sns/parser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { SNSEvent } from 'aws-lambda';
22

3-
export class SnsParser<T> {
3+
export class SnsParser<T = any> {
44
constructor(private event: SNSEvent) {}
55

66
getMessage(): T {

src/sns/wrapper.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ describe('Stream wrapper', () => {
2121
const callback = jest.fn((err, result) => (err ? new Error(err) : result));
2222

2323
it('Has expected properties and response funtions', () => {
24-
// @ts-ignore
2524
function custom({ event, message, success, error }: SnsSignature) {
2625
expect(event).toEqual(requestEvent);
2726
expect(message).toEqual('hello world');

src/sns/wrapper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { SnsParser } from './parser';
55

66
const metrics = new Metrics('Sns');
77

8-
export function sns<T>(
8+
export function sns<T = any>(
99
custom: (props: SnsSignature<T>) => any
1010
): (event: SNSEvent, context: Context, callback: Callback) => any {
1111
return function handler(event: SNSEvent, context: Context, callback: Callback) {
@@ -15,7 +15,7 @@ export function sns<T>(
1515
};
1616
}
1717

18-
export interface SnsSignature<T> {
18+
export interface SnsSignature<T = any> {
1919
event: SNSEvent; // original event
2020
message: T; // JSON-parsed message from event
2121
success(message?: any): any; // logs and returns the message

0 commit comments

Comments
 (0)