11import inputOutputLogger from "@middy/input-output-logger"
22import httpHeaderNormalizer from "@middy/http-header-normalizer"
33import { injectLambdaContext } from "@aws-lambda-powertools/logger/middleware"
4- import middy from "@middy/core"
4+ import { MiddyfiedHandler } from "@middy/core"
5+ import { APIGatewayProxyResult } from "aws-lambda"
56import { Logger } from "@aws-lambda-powertools/logger"
67import validator from "@middy/validator"
78import { transpileSchema } from "@middy/validator/transpile"
89import { validationErrorHandler } from "./errorHandler"
910
10- export type MiddlewareGenerator = ( logger : Logger , schema ?: object ) => middy . MiddlewareObj
11+ export type MiddlewareApplicator = < Event > (
12+ handler : MiddyfiedHandler < Event , APIGatewayProxyResult > ,
13+ logger : Logger ,
14+ schema ?: object
15+ ) => MiddyfiedHandler < Event , APIGatewayProxyResult >
1116
12- export const MIDDLEWARE : Record < string , MiddlewareGenerator > = {
13- injectLambdaContext : ( logger ) => injectLambdaContext ( logger , { clearState : true } ) ,
14- httpHeaderNormalizer : ( ) => httpHeaderNormalizer ( ) as middy . MiddlewareObj ,
15- inputOutputLogger : ( logger ) =>
16- inputOutputLogger ( {
17+ export const MIDDLEWARE : Record < string , MiddlewareApplicator > = {
18+ injectLambdaContext : ( handler , logger ) =>
19+ handler . use ( injectLambdaContext ( logger , { clearState : true } ) ) ,
20+ httpHeaderNormalizer : ( handler ) =>
21+ handler . use ( httpHeaderNormalizer ( ) ) ,
22+ inputOutputLogger : ( handler , logger ) =>
23+ handler . use ( inputOutputLogger ( {
1724 logger : ( request ) => {
1825 const response = ( request as { response ?: unknown } | null | undefined ) ?. response
1926 if ( response === undefined ) {
@@ -22,9 +29,11 @@ export const MIDDLEWARE: Record<string, MiddlewareGenerator> = {
2229 logger . debug ( "inputOutputLogger response" , { response} )
2330 }
2431 }
25- } ) ,
26- validator : ( logger , schema ) => validator ( { eventSchema : transpileSchema ( schema as object ) } ) ,
27- validationErrorHandler : ( logger ) => validationErrorHandler ( { logger : logger } )
32+ } ) ) ,
33+ validator : ( handler , logger , schema ) =>
34+ handler . use ( validator ( { eventSchema : transpileSchema ( schema as object ) } ) ) ,
35+ validationErrorHandler : ( handler , logger ) =>
36+ handler . use ( validationErrorHandler ( { logger : logger } ) )
2837}
2938
3039export const DEFAULT_HANDLER_MIDDLEWARE = [
0 commit comments