Skip to content

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

模块用法

用于创建、记录或读取 Event 契约。Event runtime 模块公开 1 类、1 函数、6 接口、1 类型。

从包入口导入

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

import type {
  DurableEventRuntimeOptions,
  EventExportResult,
  EventImportRequest,
  EventImportResult,
  EventReadRequest,
  EventRuntime,
  EventExportRequest,
} from '@codesoul-co/hypha-core';

使用要点

  • 7 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用 import type,运行时不应依赖它们。
  • 1 个类提供可实例化的运行时实现;构造参数与公开方法在各自条目中完整列出。
  • 1 个函数是该模块的直接操作入口;每个 overload 的必需/可选参数与返回类型均在下方列出。

公共导出

Symbol种类签名说明
DurableEventRuntimenew DurableEventRuntime(options: DurableEventRuntimeOptions): DurableEventRuntimeDurable Event Runtime 类,共公开 9 个构造函数或成员;精确签名见本条目的声明与成员表。
eventExportChecksum函数eventExportChecksum(exported: Omit<EventExportResult, "checksum"> | EventExportResult): stringEvent Export Checksum 函数,提供 1 个公开调用签名;参数与返回类型见下表。
DurableEventRuntimeOptions接口interface DurableEventRuntimeOptionsDurable Event Runtime Options 接口,共包含 2 个公开字段或方法。
EventExportResult接口interface EventExportResultEvent Export Result 接口,共包含 7 个公开字段或方法。
EventImportRequest接口interface EventImportRequestEvent Import Request 接口,共包含 6 个公开字段或方法。
EventImportResult接口interface EventImportResult extends EventAppendResultEvent Import Result 接口,共包含 7 个公开字段或方法。
EventReadRequest接口interface EventReadRequestEvent Read Request 接口,共包含 4 个公开字段或方法。
EventRuntime接口interface EventRuntimeEvent Runtime 接口,共包含 8 个公开字段或方法。
EventExportRequest类型type EventExportRequest = EventReadRequestEvent Export Request 公共类型别名;完整类型表达式见声明。

DurableEventRuntime

Durable Event Runtime 类,共公开 9 个构造函数或成员;精确签名见本条目的声明与成员表。

声明

text
export declare class DurableEventRuntime implements EventRuntime {
    constructor(options: DurableEventRuntimeOptions);
    append(request: EventAppendRequest): Promise<EventAppendResult>;
    read(request: EventReadRequest): Promise<PersistedFrameworkEvent[]>;
    stream(request: EventReadRequest): AsyncIterable<PersistedFrameworkEvent>;
    latestSequence(scope: EventStreamScope): Promise<number>;
    getStreamHead(scope: EventStreamScope): Promise<EventStreamHead | null>;
    listStreamHeads(request?: ListEventStreamHeadsRequest): Promise<ListEventStreamHeadsResult>;
    export(request: EventExportRequest): Promise<EventExportResult>;
    import(request: EventImportRequest): Promise<EventImportResult>;
}

公开成员

成员种类签名说明
append方法append(request: EventAppendRequest): Promise<EventAppendResult>公开方法;参数与返回类型以签名列为准。
constructor构造函数(options: DurableEventRuntimeOptions): DurableEventRuntime创建该类的实例。
export方法export(request: EventExportRequest): Promise<EventExportResult>公开方法;参数与返回类型以签名列为准。
getStreamHead方法getStreamHead(scope: EventStreamScope): Promise<EventStreamHead | null>公开方法;参数与返回类型以签名列为准。
import方法import(request: EventImportRequest): Promise<EventImportResult>公开方法;参数与返回类型以签名列为准。
latestSequence方法latestSequence(scope: EventStreamScope): Promise<number>公开方法;参数与返回类型以签名列为准。
listStreamHeads方法listStreamHeads(request?: ListEventStreamHeadsRequest): Promise<ListEventStreamHeadsResult>公开方法;参数与返回类型以签名列为准。
read方法read(request: EventReadRequest): Promise<PersistedFrameworkEvent[]>公开方法;参数与返回类型以签名列为准。
stream方法stream(request: EventReadRequest): AsyncIterable<PersistedFrameworkEvent>公开方法;参数与返回类型以签名列为准。

eventExportChecksum

Event Export Checksum 函数,提供 1 个公开调用签名;参数与返回类型见下表。

声明

text
export declare function eventExportChecksum(exported: Omit<EventExportResult, 'checksum'> | EventExportResult): string;

调用签名

text
eventExportChecksum(exported: Omit<EventExportResult, "checksum"> | EventExportResult): string

参数

参数类型必需说明
exportedEventExportResult | Omit<EventExportResult, "checksum">必需参数;接受的值由类型列定义。

返回值

  • 类型: string
  • 说明: 返回值契约由上述类型定义。

DurableEventRuntimeOptions

Durable Event Runtime Options 接口,共包含 2 个公开字段或方法。

声明

text
export interface DurableEventRuntimeOptions {
    store: DurableEventStore;
    now?: () => string;
}

契约成员

成员种类签名说明
now方法now?(): string公开方法;参数与返回类型以签名列为准。
store属性store: DurableEventStore公开属性;类型、只读和可选状态以签名列为准。

EventExportResult

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

声明

text
export interface EventExportResult {
    formatVersion: '1.0.0';
    scope: EventStreamScope;
    head: EventStreamHead | null;
    events: PersistedFrameworkEvent[];
    eventCount: number;
    exportedAt: string;
    checksum: string;
}

契约成员

成员种类签名说明
checksum属性checksum: string公开属性;类型、只读和可选状态以签名列为准。
eventCount属性eventCount: number公开属性;类型、只读和可选状态以签名列为准。
events属性events: PersistedFrameworkEvent<unknown>[]公开属性;类型、只读和可选状态以签名列为准。
exportedAt属性exportedAt: string公开属性;类型、只读和可选状态以签名列为准。
formatVersion属性formatVersion: "1.0.0"公开属性;类型、只读和可选状态以签名列为准。
head属性head: EventStreamHead公开属性;类型、只读和可选状态以签名列为准。
scope属性scope: EventStreamScope公开属性;类型、只读和可选状态以签名列为准。

EventImportRequest

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

声明

text
export interface EventImportRequest {
    scope: EventStreamScope;
    exported: EventExportResult;
    expectedLastSequence: number;
    expectedRunRevision?: number;
    fencingToken?: number;
    idempotencyKey: string;
}

契约成员

成员种类签名说明
expectedLastSequence属性expectedLastSequence: number公开属性;类型、只读和可选状态以签名列为准。
expectedRunRevision属性expectedRunRevision?: number公开属性;类型、只读和可选状态以签名列为准。
exported属性exported: EventExportResult公开属性;类型、只读和可选状态以签名列为准。
fencingToken属性fencingToken?: number公开属性;类型、只读和可选状态以签名列为准。
idempotencyKey属性idempotencyKey: string公开属性;类型、只读和可选状态以签名列为准。
scope属性scope: EventStreamScope公开属性;类型、只读和可选状态以签名列为准。

EventImportResult

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

声明

text
export interface EventImportResult extends EventAppendResult {
    importedEventCount: number;
    sourceChecksum: string;
}

契约成员

成员种类签名说明
events属性events: PersistedFrameworkEvent<unknown>[]公开属性;类型、只读和可选状态以签名列为准。
firstSequence属性firstSequence: number公开属性;类型、只读和可选状态以签名列为准。
importedEventCount属性importedEventCount: number公开属性;类型、只读和可选状态以签名列为准。
lastSequence属性lastSequence: number公开属性;类型、只读和可选状态以签名列为准。
reused属性reused: boolean公开属性;类型、只读和可选状态以签名列为准。
runRevision属性runRevision: number公开属性;类型、只读和可选状态以签名列为准。
sourceChecksum属性sourceChecksum: string公开属性;类型、只读和可选状态以签名列为准。

EventReadRequest

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

声明

text
export interface EventReadRequest {
    scope: EventStreamScope;
    fromSequence?: number;
    toSequence?: number;
    types?: FrameworkEventType[];
}

契约成员

成员种类签名说明
fromSequence属性fromSequence?: number公开属性;类型、只读和可选状态以签名列为准。
scope属性scope: EventStreamScope公开属性;类型、只读和可选状态以签名列为准。
toSequence属性toSequence?: number公开属性;类型、只读和可选状态以签名列为准。
types属性types?: FrameworkEventType[]公开属性;类型、只读和可选状态以签名列为准。

EventRuntime

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

声明

text
export interface EventRuntime {
    append(request: EventAppendRequest): Promise<EventAppendResult>;
    read(request: EventReadRequest): Promise<PersistedFrameworkEvent[]>;
    stream(request: EventReadRequest): AsyncIterable<PersistedFrameworkEvent>;
    latestSequence(scope: EventStreamScope): Promise<number>;
    getStreamHead(scope: EventStreamScope): Promise<EventStreamHead | null>;
    listStreamHeads(request?: ListEventStreamHeadsRequest): Promise<ListEventStreamHeadsResult>;
    export(request: EventExportRequest): Promise<EventExportResult>;
    import(request: EventImportRequest): Promise<EventImportResult>;
}

契约成员

成员种类签名说明
append方法append(request: EventAppendRequest): Promise<EventAppendResult>公开方法;参数与返回类型以签名列为准。
export方法export(request: EventExportRequest): Promise<EventExportResult>公开方法;参数与返回类型以签名列为准。
getStreamHead方法getStreamHead(scope: EventStreamScope): Promise<EventStreamHead | null>公开方法;参数与返回类型以签名列为准。
import方法import(request: EventImportRequest): Promise<EventImportResult>公开方法;参数与返回类型以签名列为准。
latestSequence方法latestSequence(scope: EventStreamScope): Promise<number>公开方法;参数与返回类型以签名列为准。
listStreamHeads方法listStreamHeads(request?: ListEventStreamHeadsRequest): Promise<ListEventStreamHeadsResult>公开方法;参数与返回类型以签名列为准。
read方法read(request: EventReadRequest): Promise<PersistedFrameworkEvent[]>公开方法;参数与返回类型以签名列为准。
stream方法stream(request: EventReadRequest): AsyncIterable<PersistedFrameworkEvent>公开方法;参数与返回类型以签名列为准。

EventExportRequest

Event Export Request 公共类型别名;完整类型表达式见声明。

声明

text
export type EventExportRequest = EventReadRequest;