Skip to content

Commit

Permalink
feat: upgrade types to reflect middy v2.x usage
Browse files Browse the repository at this point in the history
  • Loading branch information
lkhari committed Apr 28, 2021
1 parent ad0410f commit cc3002b
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 81 deletions.
49 changes: 29 additions & 20 deletions packages/lambda-powertools-middleware-correlation-ids/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import middy from "@middy/core";
import {
Context,
SQSRecord,
Handler,
DynamoDBRecord,
DynamoDBStreamEvent,
Callback,
Expand All @@ -15,28 +14,38 @@ import CorrelationIds from "@dazn/lambda-powertools-correlation-ids";

export default function <T, R, C extends Context = Context>(params: {
sampleDebugLogRate: number;
}): middy.MiddlewareObject<T, R, C>;
}): middy.MiddlewareObj<T, R, C>;

export type ExtractedCorrelationIdAndLogger<L = Log> = {
logger: L;
correlationIds: CorrelationIds;
};

export type Handler<
TEvent = any,
TResult = any,
TContext extends Context = Context
> = (
event: TEvent,
context: TContext,
callback: Callback<TResult>
) => void | Promise<TResult>;

export type SQSEvent<L = Log> = {
Records: (SQSRecord & ExtractedCorrelationIdAndLogger<L>)[];
};

export type SQSHandler<L = Log> = Handler<SQSEvent<L>, void>;
export type SQSHandler = Handler<SQSEvent, void>;

export type KinesisContext<T, L = Log> = Context & {
parsedKinesisEvents: ((T & ExtractedCorrelationIdAndLogger<L>) | undefined)[];
};

export type KinesisStreamHandler<T, L = Log> = (
event: KinesisStreamEvent,
context: KinesisContext<T, L>,
callback: Callback<void>
) => void | Promise<void>;
export type KinesisStreamHandler<T> = Handler<
KinesisStreamEvent,
void,
KinesisContext<T>
>;

export type FirehoseContext<T, L = Log> = Context & {
parsedFirehoseEvents: (
Expand All @@ -45,18 +54,18 @@ export type FirehoseContext<T, L = Log> = Context & {
)[];
};

export type FirehoseTransformationHandler<T, L = Log> = (
event: FirehoseTransformationEvent,
context: FirehoseContext<T, L>,
callback: Callback<FirehoseTransformationResult>
) => void | Promise<FirehoseTransformationResult>;
export type FirehoseTransformationHandler<T> = Handler<
FirehoseTransformationEvent,
FirehoseTransformationResult,
FirehoseContext<T>
>;

export type DynamoStreamsContext<L = Log> = Context & {
parsedDynamoDbEvents: (DynamoDBRecord & ExtractedCorrelationIdAndLogger<L>)[];
export type DynamoStreamsContext = Context & {
parsedDynamoDbEvents: (DynamoDBRecord & ExtractedCorrelationIdAndLogger)[];
};

export type DynamoDBStreamHandler<L = Log> = (
event: DynamoDBStreamEvent,
context: DynamoStreamsContext<L>,
callback: Callback<void>
) => void | Promise<void>;
export type DynamoDBStreamHandler = Handler<
DynamoDBStreamEvent,
void,
DynamoStreamsContext
>;
41 changes: 11 additions & 30 deletions packages/lambda-powertools-pattern-basic/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,15 @@ import middy from "@middy/core";
import { Callback, Context } from "aws-lambda";
export * from "@dazn/lambda-powertools-middleware-correlation-ids";

declare type EventType<T, C> = T extends (
event: infer EventArgType,
context: C,
callback: Callback<any>
) => void
? EventArgType
: T extends (event: infer EventArgType, context: C) => Promise<any>
? EventArgType
: never;

declare type HandlerReturnType<T, C> = T extends (
event: any,
context: C
) => Promise<infer RetType>
? RetType
: T extends (
event: any,
context: C,
callback: Callback<infer RetType>
) => void
? RetType
: never;

declare type AsyncHandler<C extends Context> =
| ((event: any, context: C, callback: Callback<any>) => void)
| ((event: any, context: C) => Promise<any>);

export default function <
H extends AsyncHandler<C>,
C extends Context = Context
>(f: H): middy.Middy<EventType<H, C>, HandlerReturnType<H, C>, C>;
TEvent = any,
TResult = any,
TContext extends Context = Context,
TErr = Error
>(
f: (
event: TEvent,
context: TContext,
callback: Callback<TResult>
) => void | Promise<TResult>
): middy.MiddyfiedHandler<TEvent, TResult, TErr>;
41 changes: 10 additions & 31 deletions packages/lambda-powertools-pattern-obfuscate/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,33 +2,6 @@ import middy from "@middy/core";
import { Callback, Context } from "aws-lambda";
export * from "@dazn/lambda-powertools-middleware-correlation-ids";

declare type EventType<T, C> = T extends (
event: infer EventArgType,
context: C,
callback: Callback<any>
) => void
? EventArgType
: T extends (event: infer EventArgType, context: C) => Promise<any>
? EventArgType
: never;

declare type HandlerReturnType<T, C> = T extends (
event: any,
context: C
) => Promise<infer RetType>
? RetType
: T extends (
event: any,
context: C,
callback: Callback<infer RetType>
) => void
? RetType
: never;

declare type AsyncHandler<C extends Context> =
| ((event: any, context: C, callback: Callback<any>) => void)
| ((event: any, context: C) => Promise<any>);

declare enum FILTERING_MODE {
BLACKLIST = "BLACKLIST",
WHITELIST = "WHITELIST",
Expand All @@ -38,14 +11,20 @@ declare namespace dazn__lambda_powertools_pattern_obfuscate {
const FILTERING_MODE: FILTERING_MODE;

function obfuscaterPattern<
H extends AsyncHandler<C>,
C extends Context = Context
TEvent = any,
TResult = any,
TContext extends Context = Context,
TErr = Error
>(
obfuscationFilters: string[],
f: H,
f: (
event: TEvent,
context: TContext,
callback: Callback<TResult>
) => void | Promise<TResult>,
filterOnAfter?: boolean,
filteringMode?: FILTERING_MODE
): middy.Middy<EventType<H, C>, HandlerReturnType<H, C>, C>;
): middy.MiddyfiedHandler<TEvent, TResult, TErr>;
}

export default dazn__lambda_powertools_pattern_obfuscate;

0 comments on commit cc3002b

Please sign in to comment.