UNPKG

@aws-lambda-powertools/parser

Version:
38 lines (37 loc) 1.03 kB
import { parse } from '../parser.js'; /** * A Middy.js middleware to parse incoming events using a specified schema and optional envelope. * * @example * ```typescript * import { parser } from '@aws-lambda-powertools/parser/middleware'; * import middy from '@middy/core'; * import { sqsEnvelope } from '@aws-lambda-powertools/parser/envelopes/sqs;' * * const oderSchema = z.object({ * id: z.number(), * description: z.string(), * quantity: z.number(), * }); * * type Order = z.infer<typeof oderSchema>; * * export const handler = middy() * .use(parser({ schema: oderSchema, envelope: sqsEnvelope })) * .handler(async (event) => { * // ^ event is inferred as Order[] * }) * ``` * * @param options - options for the parser */ const parser = (options) => { const before = (request) => { const { schema, envelope, safeParse } = options; request.event = parse(request.event, envelope, schema, safeParse); }; return { before, }; }; export { parser };