Skip to content

createEventSchema

createEventSchema<TType, TDataObject>(type, dataObjectSchema): ZodObject<{ data: ZodObject<{ object: TDataObject; }, $strip>; id: ZodString; type: ZodLiteral<TType>; }, $strip>

Defined in: zod/src/index.ts:40

Create a typed event schema with a specific event type and data object schema

TType extends string

TDataObject extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>>

TType

The event type string (e.g., ‘issue.opened’)

TDataObject

Zod schema for the data.object property

ZodObject<{ data: ZodObject<{ object: TDataObject; }, $strip>; id: ZodString; type: ZodLiteral<TType>; }, $strip>

A Zod schema for the complete event

const issueOpenedSchema = createEventSchema('issue.opened', z.object({
id: z.number(),
title: z.string(),
body: z.string().optional(),
}));
type IssueOpenedEvent = z.infer<typeof issueOpenedSchema>;