Skip to content

Commit cdf1488

Browse files
committed
chore(cpsuLambda): to use middy logger as others do
1 parent 17bd540 commit cdf1488

2 files changed

Lines changed: 24 additions & 15 deletions

File tree

packages/cpsuLambda/src/handler.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {APIGatewayProxyResult} from "aws-lambda"
22
import middy from "@middy/core"
3-
import {MiddlewareGenerator} from "./middleware"
3+
import {MiddlewareApplicator} from "./middleware"
44
import {Logger} from "@aws-lambda-powertools/logger"
55
import {Result} from "pratica"
66
import {Bundle, Task} from "fhir/r4"
@@ -18,7 +18,7 @@ type EventWithHeaders = {
1818
}
1919
}
2020
type HandlerConfig<Event, Message> = {
21-
middleware: Array<MiddlewareGenerator>
21+
middleware: Array<MiddlewareApplicator>
2222
params: HandlerParams<Event, Message>
2323
logger: Logger
2424
schema?: object
@@ -70,10 +70,10 @@ function append_headers(headers: Record<string, string>, logger: Logger) {
7070
* Creates a new Lambda handler with the specified handler function and middleware.
7171
*/
7272
export const newHandler = <Event extends EventWithHeaders, Message>(handlerConfig: HandlerConfig<Event, Message>) => {
73-
const newHandler = middy((event: Event) => generic_handler(event, handlerConfig.params, handlerConfig.logger))
73+
let newHandler = middy((event: Event) => generic_handler(event, handlerConfig.params, handlerConfig.logger))
7474

75-
for (const middleware_generator of handlerConfig.middleware) {
76-
newHandler.use(middleware_generator(handlerConfig.logger, handlerConfig.schema))
75+
for (const middleware_applicator of handlerConfig.middleware) {
76+
newHandler = middleware_applicator(newHandler, handlerConfig.logger, handlerConfig.schema)
7777
}
7878

7979
return newHandler

packages/cpsuLambda/src/middleware.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,26 @@
11
import inputOutputLogger from "@middy/input-output-logger"
22
import httpHeaderNormalizer from "@middy/http-header-normalizer"
33
import {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"
56
import {Logger} from "@aws-lambda-powertools/logger"
67
import validator from "@middy/validator"
78
import {transpileSchema} from "@middy/validator/transpile"
89
import {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

3039
export const DEFAULT_HANDLER_MIDDLEWARE = [

0 commit comments

Comments
 (0)