@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 | 种类 | 签名 | 说明 |
|---|---|---|---|
DurableEventRuntime | 类 | new DurableEventRuntime(options: DurableEventRuntimeOptions): DurableEventRuntime | Durable Event Runtime 类,共公开 9 个构造函数或成员;精确签名见本条目的声明与成员表。 |
eventExportChecksum | 函数 | eventExportChecksum(exported: Omit<EventExportResult, "checksum"> | EventExportResult): string | Event Export Checksum 函数,提供 1 个公开调用签名;参数与返回类型见下表。 |
DurableEventRuntimeOptions | 接口 | interface DurableEventRuntimeOptions | Durable Event Runtime Options 接口,共包含 2 个公开字段或方法。 |
EventExportResult | 接口 | interface EventExportResult | Event Export Result 接口,共包含 7 个公开字段或方法。 |
EventImportRequest | 接口 | interface EventImportRequest | Event Import Request 接口,共包含 6 个公开字段或方法。 |
EventImportResult | 接口 | interface EventImportResult extends EventAppendResult | Event Import Result 接口,共包含 7 个公开字段或方法。 |
EventReadRequest | 接口 | interface EventReadRequest | Event Read Request 接口,共包含 4 个公开字段或方法。 |
EventRuntime | 接口 | interface EventRuntime | Event Runtime 接口,共包含 8 个公开字段或方法。 |
EventExportRequest | 类型 | type EventExportRequest = EventReadRequest | Event Export Request 公共类型别名;完整类型表达式见声明。 |
DurableEventRuntime
Durable Event Runtime 类,共公开 9 个构造函数或成员;精确签名见本条目的声明与成员表。
- 种类: 类
- 导入:
import { DurableEventRuntime } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/event-runtime
声明
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 个公开调用签名;参数与返回类型见下表。
- 种类: 函数
- 导入:
import { eventExportChecksum } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/event-runtime
声明
text
export declare function eventExportChecksum(exported: Omit<EventExportResult, 'checksum'> | EventExportResult): string;调用签名
text
eventExportChecksum(exported: Omit<EventExportResult, "checksum"> | EventExportResult): string参数
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
exported | EventExportResult | Omit<EventExportResult, "checksum"> | 是 | 必需参数;接受的值由类型列定义。 |
返回值
- 类型:
string - 说明: 返回值契约由上述类型定义。
DurableEventRuntimeOptions
Durable Event Runtime Options 接口,共包含 2 个公开字段或方法。
- 种类: 接口
- 导入:
import type { DurableEventRuntimeOptions } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/event-runtime
声明
text
export interface DurableEventRuntimeOptions {
store: DurableEventStore;
now?: () => string;
}契约成员
| 成员 | 种类 | 签名 | 说明 |
|---|---|---|---|
now | 方法 | now?(): string | 公开方法;参数与返回类型以签名列为准。 |
store | 属性 | store: DurableEventStore | 公开属性;类型、只读和可选状态以签名列为准。 |
EventExportResult
Event Export Result 接口,共包含 7 个公开字段或方法。
- 种类: 接口
- 导入:
import type { EventExportResult } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/event-runtime
声明
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 个公开字段或方法。
- 种类: 接口
- 导入:
import type { EventImportRequest } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/event-runtime
声明
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 个公开字段或方法。
- 种类: 接口
- 导入:
import type { EventImportResult } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/event-runtime
声明
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 个公开字段或方法。
- 种类: 接口
- 导入:
import type { EventReadRequest } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/event-runtime
声明
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 个公开字段或方法。
- 种类: 接口
- 导入:
import type { EventRuntime } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/event-runtime
声明
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 公共类型别名;完整类型表达式见声明。
- 种类: 类型
- 导入:
import type { EventExportRequest } from '@codesoul-co/hypha-core'; - 源码模块:
modules/runtime/event-runtime
声明
text
export type EventExportRequest = EventReadRequest;