UNPKG

@aws-lambda-powertools/parser

Version:
41 lines (40 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parser = void 0; const parser_js_1 = require("../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 orderSchema = z.object({ * id: z.number(), * description: z.string(), * quantity: z.number(), * }); * * type Order = z.infer<typeof orderSchema>; * * export const handler = middy() * .use(parser({ schema: orderSchema, 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 = (0, parser_js_1.parse)(request.event, envelope, schema, safeParse); }; return { before, }; }; exports.parser = parser;