@aws-lambda-powertools/parser
Version:
The parser package for the Powertools for AWS Lambda (TypeScript) library.
41 lines (40 loc) • 1.17 kB
JavaScript
;
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;