Zod 活动
德里·卡斯托尔 EventType 使用定义 zod。 。 。 .
* 安装
# npm
npm install @castore/event-type-zod
# yarn
yarn add @castore/event-type-zod
这个软件包 @castore/core 财务报告和审定财务报表 zod (以上 v3) 作为对等依赖, 您也必须安装它们 :
# npm
npm install @castore/core zod
# yarn
yarn add @castore/core zod
使用量
import z from 'zod';
import { ZodEventType } from '@castore/event-type-zod';
const pokemonAppearedPayloadSchema = z.object({
name: z.string(),
level: z.number(),
});
const pokemonAppearedMetadataSchema = z.object({
trigger: z.enum(['random', 'scripted']).optional(),
});
// 👇 generics are correctly inferred
const pokemonAppearedEventType = new ZodEventType({
type: 'POKEMON_APPEARED',
payloadSchema: pokemonAppearedPayloadSchema,
metadataSchema: pokemonAppearedMetadataSchema,
});
等于:
import { EventType } from '@castore/core';
const pokemonAppearedEventType = new EventType<
'POKEMON_APPEARED',
{ name: string; level: number },
{ trigger?: 'random' | 'scripted' }
>({ type: 'POKEMON_APPEARED' });
属性方法( M)
ZodEventType 执行 EventType 分类并添加以下属性:
payloadSchema (?object): 事件类型的有效载荷zod schema
const payloadSchema = pokemonAppearedEventType.payloadSchema;
// => pokemonAppearedPayloadSchema
metadataSchema (?object): 事件类型元数据zod schema
const metadataSchema = pokemonAppearedEventType.metadataSchema;
// => pokemonAppearedMetadataSchema