JSON 舍马事件
德里·卡斯托尔 EventType 使用定义 JSON 谢马斯 财务报告和审定财务报表 json-schema-to-ts
* 安装
# npm
npm install @castore/event-type-json-schema
# yarn
yarn add @castore/event-type-json-schema
这个软件包 @castore/core 财务报告和审定财务报表 json-schema-to-ts (以上 v2) 作为对等依赖, 您也必须安装它们 :
# npm
npm install @castore/core json-schema-to-ts
# yarn
yarn add @castore/core json-schema-to-ts
使用量
import { JSONSchemaEventType } from '@castore/event-type-json-schema';
const pokemonAppearedPayloadSchema = {
type: 'object',
properties: {
name: { type: 'string' },
level: { type: 'integer' },
},
required: ['name', 'level'],
additionalProperties: false,
} as const; // 👈 Don't forget the "as const" statement
// (Cf json-schema-to-ts documentation)
const pokemonAppearedMetadataSchema = {
type: 'object',
properties: {
trigger: { enum: ['random', 'scripted'] },
},
additionalProperties: false,
} as const;
// 👇 generics are correctly inferred
const pokemonAppearedEventType = new JSONSchemaEventType({
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)
JSONSchemaEventType 执行 EventType 分类并添加以下属性:
payloadSchema (?object):事件类型的载荷 JSON schema
const payloadSchema = pokemonAppearedEventType.payloadSchema;
// => pokemonAppearedPayloadSchema
metadataSchema (?object): 事件类型元数据 JSON schema
const metadataSchema = pokemonAppearedEventType.metadataSchema;
// => pokemonAppearedMetadataSchema