@aws-lambda-powertools/parser
Version:
The parser package for the Powertools for AWS Lambda (TypeScript) library.
33 lines • 1.27 kB
TypeScript
import type { MiddlewareObj } from '@middy/core';
import type { StandardSchemaV1 } from '@standard-schema/spec';
import type { Envelope } from '../types/envelope.js';
import type { ParserOptions, ParserOutput } from '../types/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
*/
declare const parser: <TSchema extends StandardSchemaV1, TEnvelope extends Envelope, TSafeParse extends boolean = false>(options: ParserOptions<TSchema, TEnvelope, TSafeParse>) => MiddlewareObj<ParserOutput<TSchema, TEnvelope, TSafeParse>>;
export { parser };
//# sourceMappingURL=index.d.ts.map