const userMessage: MessageDefinition<{name: string}> = defineMessage( 'user-message', z.object({ name: z.string() }));// Access the componentsconsole.log(userMessage.id); // 'user-message'userMessage.schema.parse({ name: 'Alice' }); // Validates just the datauserMessage.messageSchema.parse({ id: 'user-message', data: { name: 'Alice' }, timestamp: Date.now()}); // Validates complete message Copy
const userMessage: MessageDefinition<{name: string}> = defineMessage( 'user-message', z.object({ name: z.string() }));// Access the componentsconsole.log(userMessage.id); // 'user-message'userMessage.schema.parse({ name: 'Alice' }); // Validates just the datauserMessage.messageSchema.parse({ id: 'user-message', data: { name: 'Alice' }, timestamp: Date.now()}); // Validates complete message
The TypeScript type inferred from the Zod schema
Readonly
The unique message type identifier
Zod schema for validating message data
Zod schema for validating the complete message structure
Example