@castore/event-type-json-schema

中文文档
2.4.2发布于 2025/04/18MITTypeScriptESM + CJS零依赖近 30 天下载 3066

DRY Castore EventType definition using JSON Schemas and json-schema-to-ts

原始使用文档
文档目录3 节
  1. 📥 Installation
  2. 👩‍💻 Usage
  3. ⚙️ Properties & Methods

JSON Schema Event

DRY Castore EventType definition using JSON Schemas and json-schema-to-ts

📥 Installation

# npm
npm install @castore/event-type-json-schema

# yarn
yarn add @castore/event-type-json-schema

This package has @castore/core and json-schema-to-ts (above v2) as peer dependencies, so you will have to install them as well:

# npm
npm install @castore/core json-schema-to-ts

# yarn
yarn add @castore/core json-schema-to-ts

👩‍💻 Usage

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,
});

👇 Equivalent to:

import { EventType } from '@castore/core';

const pokemonAppearedEventType = new EventType<
  'POKEMON_APPEARED',
  { name: string; level: number },
  { trigger?: 'random' | 'scripted' }
>({ type: 'POKEMON_APPEARED' });

⚙️ Properties & Methods

JSONSchemaEventType implements the EventType class and adds the following properties to it:

  • payloadSchema (?object): The event type payload JSON schema
const payloadSchema = pokemonAppearedEventType.payloadSchema;
// => pokemonAppearedPayloadSchema
  • metadataSchema (?object): The event type metadata JSON schema
const metadataSchema = pokemonAppearedEventType.metadataSchema;
// => pokemonAppearedMetadataSchema

版本与发布记录

@castore/event-type-json-schema 共发布 8 个版本,首次发布于 2023/10/28;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.4.2latest2025/04/181.6 年前
2.4.12025/02/251.7 年前
2.4.02025/02/181.7 年前
2.3.12024/04/252 年前
2.3.02024/03/212 年前
2.2.02024/01/172 年前

关于 @castore/event-type-json-schema 的常见问题

@castore/event-type-json-schema 是什么?

DRY Castore EventType definition using JSON Schemas and json-schema-to-ts

如何安装 @castore/event-type-json-schema?

在项目目录运行 npm install @castore/event-type-json-schema,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@castore/core(^2.0.0)、json-schema-to-ts(^2.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@castore/event-type-json-schema 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@castore/event-type-json-schema 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@castore/event-type-json-schema 可以商用吗?

@castore/event-type-json-schema 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@castore/event-type-json-schema 的下载量有多少?

根据 npm 官方下载统计,@castore/event-type-json-schema 在 2026/10/09 – 2026/11/07 这 30 天内被下载 3,066 次,日均约 102 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@castore/event-type-json-schema 还在维护吗?

最新版本 2.4.2 发布于 2025/04/18(1.6 年前);至今共发布 8 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/10/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。