Skip to content

@codesoul-co/hypha-core / modules/runtime/event-schema-registry

模块用法

用于声明并运行时校验契约。Event schema registry 模块公开 1 类、5 接口。

从包入口导入

ts
import {
  InMemoryEventSchemaRegistry,
} from '@codesoul-co/hypha-core';

import type {
  EventSchemaDefinition,
  EventSchemaRegistry,
  EventUpcaster,
  EventValidationIssue,
  EventValidationResult,
} from '@codesoul-co/hypha-core';

使用要点

  • 5 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用 import type,运行时不应依赖它们。
  • 1 个类提供可实例化的运行时实现;构造参数与公开方法在各自条目中完整列出。

公共导出

Symbol种类签名说明
InMemoryEventSchemaRegistrynew InMemoryEventSchemaRegistry(): InMemoryEventSchemaRegistryIn Memory Event Schema Registry 类,共公开 5 个构造函数或成员;精确签名见本条目的声明与成员表。
EventSchemaDefinition接口interface EventSchemaDefinitionEvent Schema Definition 接口,共包含 6 个公开字段或方法。
EventSchemaRegistry接口interface EventSchemaRegistryEvent Schema Registry 接口,共包含 4 个公开字段或方法。
EventUpcaster接口interface EventUpcasterEvent Upcaster 接口,共包含 5 个公开字段或方法。
EventValidationIssue接口interface EventValidationIssueEvent Validation Issue 接口,共包含 3 个公开字段或方法。
EventValidationResult接口interface EventValidationResultEvent Validation Result 接口,共包含 5 个公开字段或方法。

InMemoryEventSchemaRegistry

In Memory Event Schema Registry 类,共公开 5 个构造函数或成员;精确签名见本条目的声明与成员表。

声明

text
export declare class InMemoryEventSchemaRegistry implements EventSchemaRegistry {
    constructor();
    register(definition: EventSchemaDefinition): Promise<void>;
    registerUpcaster(upcaster: EventUpcaster): Promise<void>;
    validate(event: EventCreateInput): Promise<EventValidationResult>;
    upcast(event: PersistedFrameworkEvent, targetVersion?: string): Promise<PersistedFrameworkEvent>;
}

公开成员

成员种类签名说明
constructor构造函数(): InMemoryEventSchemaRegistry创建该类的实例。
register方法register(definition: EventSchemaDefinition): Promise<void>公开方法;参数与返回类型以签名列为准。
registerUpcaster方法registerUpcaster(upcaster: EventUpcaster): Promise<void>公开方法;参数与返回类型以签名列为准。
upcast方法upcast(event: PersistedFrameworkEvent, targetVersion?: string): Promise<PersistedFrameworkEvent>公开方法;参数与返回类型以签名列为准。
validate方法validate(event: EventCreateInput): Promise<EventValidationResult>公开方法;参数与返回类型以签名列为准。

EventSchemaDefinition

Event Schema Definition 接口,共包含 6 个公开字段或方法。

声明

text
export interface EventSchemaDefinition {
    eventType: string;
    version: string;
    schema: JsonSchema;
    schemaHash: string;
    sensitivePaths?: string[];
    upcasterRefs?: string[];
}

契约成员

成员种类签名说明
eventType属性eventType: string公开属性;类型、只读和可选状态以签名列为准。
schema属性schema: JsonSchema公开属性;类型、只读和可选状态以签名列为准。
schemaHash属性schemaHash: string公开属性;类型、只读和可选状态以签名列为准。
sensitivePaths属性sensitivePaths?: string[]公开属性;类型、只读和可选状态以签名列为准。
upcasterRefs属性upcasterRefs?: string[]公开属性;类型、只读和可选状态以签名列为准。
version属性version: string公开属性;类型、只读和可选状态以签名列为准。

EventSchemaRegistry

Event Schema Registry 接口,共包含 4 个公开字段或方法。

声明

text
export interface EventSchemaRegistry {
    register(definition: EventSchemaDefinition): Promise<void>;
    registerUpcaster(upcaster: EventUpcaster): Promise<void>;
    validate(event: EventCreateInput): Promise<EventValidationResult>;
    upcast(event: PersistedFrameworkEvent, targetVersion?: string): Promise<PersistedFrameworkEvent>;
}

契约成员

成员种类签名说明
register方法register(definition: EventSchemaDefinition): Promise<void>公开方法;参数与返回类型以签名列为准。
registerUpcaster方法registerUpcaster(upcaster: EventUpcaster): Promise<void>公开方法;参数与返回类型以签名列为准。
upcast方法upcast(event: PersistedFrameworkEvent, targetVersion?: string): Promise<PersistedFrameworkEvent>公开方法;参数与返回类型以签名列为准。
validate方法validate(event: EventCreateInput): Promise<EventValidationResult>公开方法;参数与返回类型以签名列为准。

EventUpcaster

Event Upcaster 接口,共包含 5 个公开字段或方法。

声明

text
export interface EventUpcaster {
    ref: string;
    eventType: string;
    fromVersion: string;
    toVersion: string;
    upcast(payload: unknown): unknown;
}

契约成员

成员种类签名说明
eventType属性eventType: string公开属性;类型、只读和可选状态以签名列为准。
fromVersion属性fromVersion: string公开属性;类型、只读和可选状态以签名列为准。
ref属性ref: string公开属性;类型、只读和可选状态以签名列为准。
toVersion属性toVersion: string公开属性;类型、只读和可选状态以签名列为准。
upcast方法upcast(payload: unknown): unknown公开方法;参数与返回类型以签名列为准。

EventValidationIssue

Event Validation Issue 接口,共包含 3 个公开字段或方法。

声明

text
export interface EventValidationIssue {
    path: string;
    code: string;
    message: string;
}

契约成员

成员种类签名说明
code属性code: string公开属性;类型、只读和可选状态以签名列为准。
message属性message: string公开属性;类型、只读和可选状态以签名列为准。
path属性path: string公开属性;类型、只读和可选状态以签名列为准。

EventValidationResult

Event Validation Result 接口,共包含 5 个公开字段或方法。

声明

text
export interface EventValidationResult {
    valid: boolean;
    eventType: string;
    version: string;
    schemaHash?: string;
    issues: EventValidationIssue[];
}

契约成员

成员种类签名说明
eventType属性eventType: string公开属性;类型、只读和可选状态以签名列为准。
issues属性issues: EventValidationIssue[]公开属性;类型、只读和可选状态以签名列为准。
schemaHash属性schemaHash?: string公开属性;类型、只读和可选状态以签名列为准。
valid属性valid: boolean公开属性;类型、只读和可选状态以签名列为准。
version属性version: string公开属性;类型、只读和可选状态以签名列为准。