Skip to content

@codesoul-co/hypha-memory / memory-server-redis-migration-fixtures

模块用法

用于编写确定性测试与契约断言。Memory server redis migration fixtures 模块公开 2 类、1 常量、2 函数、2 接口、2 类型。

从包入口导入

ts
import {
  InMemoryRedisStreamMigrationClient,
  InMemoryWorkingMemoryMigrationPort,
  redisWorkingMemoryBoundaryCases,
  createInMemoryWorkingMemoryMigrationHarness,
  createRedisStreamWorkingMemoryMigrationHarness,
} from '@codesoul-co/hypha-memory';

import type {
  RedisWorkingMemoryBoundaryCase,
  WorkingMemoryMigrationAcceptanceHarness,
  RedisMigrationCommand,
  WorkingMemoryMigrationHarnessFactory,
} from '@codesoul-co/hypha-memory';

使用要点

  • 4 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用 import type,运行时不应依赖它们。
  • 2 个类提供可实例化的运行时实现;构造参数与公开方法在各自条目中完整列出。
  • 2 个函数是该模块的直接操作入口;每个 overload 的必需/可选参数与返回类型均在下方列出。
  • 1 个常量/枚举提供稳定值、Schema、Definition 或默认配置;应复用这些导出,避免在应用中复制内部值。

公共导出

Symbol种类签名说明
InMemoryRedisStreamMigrationClientnew InMemoryRedisStreamMigrationClient(): InMemoryRedisStreamMigrationClientIn Memory Redis Stream Migration Client 类,共公开 10 个构造函数或成员;精确签名见本条目的声明与成员表。
InMemoryWorkingMemoryMigrationPortnew InMemoryWorkingMemoryMigrationPort(storage?: Map<string, WorkingMemoryMigrationEntry<unknown>[]>): InMemoryWorkingMemoryMigrationPortIn Memory Working Memory Migration Port 类,共公开 5 个构造函数或成员;精确签名见本条目的声明与成员表。
redisWorkingMemoryBoundaryCases常量const redisWorkingMemoryBoundaryCases: readonly RedisWorkingMemoryBoundaryCase[]memory-server-redis-migration-fixtures 模块导出的 Redis Working Memory Boundary Cases 常量。
createInMemoryWorkingMemoryMigrationHarness函数createInMemoryWorkingMemoryMigrationHarness(): WorkingMemoryMigrationAcceptanceHarnessCreate In Memory Working Memory Migration Harness 函数,提供 1 个公开调用签名;参数与返回类型见下表。
createRedisStreamWorkingMemoryMigrationHarness函数createRedisStreamWorkingMemoryMigrationHarness(fixtureId: string, client?: InMemoryRedisStreamMigrationClient): WorkingMemoryMigrationAcceptanceHarness & { client: InMemoryRedisStreamMigrationClient; }Create Redis Stream Working Memory Migration Harness 函数,提供 1 个公开调用签名;参数与返回类型见下表。
RedisWorkingMemoryBoundaryCase接口interface RedisWorkingMemoryBoundaryCaseRedis Working Memory Boundary Case 接口,共包含 6 个公开字段或方法。
WorkingMemoryMigrationAcceptanceHarness接口interface WorkingMemoryMigrationAcceptanceHarnessWorking Memory Migration Acceptance Harness 接口,共包含 2 个公开字段或方法。
RedisMigrationCommand类型type RedisMigrationCommand = { name: 'XADD'; key: string; } | { name: 'XTRIM'; key: string; strategy: 'MAXLEN'; threshold: number; } | { name: 'XRANGE'; key: string; start: '-'; end: '+'; } | { name: 'XREVRANGE'; key: string; end: '+'; start: '-'; count: 1; } | { name: 'SCAN'; cursor: string; pattern: string; count: number; } | { name: 'DEL'; keys: string[]; }Redis Migration Command 公共类型别名;完整类型表达式见声明。
WorkingMemoryMigrationHarnessFactory类型type WorkingMemoryMigrationHarnessFactory = (fixtureId: string) => WorkingMemoryMigrationAcceptanceHarnessWorking Memory Migration Harness Factory 公共类型别名;完整类型表达式见声明。

InMemoryRedisStreamMigrationClient

In Memory Redis Stream Migration Client 类,共公开 10 个构造函数或成员;精确签名见本条目的声明与成员表。

声明

text
export declare class InMemoryRedisStreamMigrationClient implements RedisStreamMigrationClient {
    readonly commands: RedisMigrationCommand[];
    xadd(key: string, _id: '*', field: 'entry', value: string): Promise<string>;
    xtrim(key: string, strategy: 'MAXLEN', threshold: number): Promise<number>;
    xrange(key: string, start: '-', end: '+'): Promise<Array<[string, string[]]>>;
    xrevrange(key: string, end: '+', start: '-', _countToken: 'COUNT', count: 1): Promise<Array<[string, string[]]>>;
    scan(cursor: string, _matchToken: 'MATCH', pattern: string, _countToken: 'COUNT', count: number): Promise<[string, string[]]>;
    del(...keys: string[]): Promise<number>;
    seedStream(key: string): void;
    repeatScanCursor(cursor: string): void;
}

公开成员

成员种类签名说明
commands属性readonly commands: RedisMigrationCommand[]公开属性;类型、只读和可选状态以签名列为准。
constructor构造函数(): InMemoryRedisStreamMigrationClient创建该类的实例。
del方法del(...keys: string[]): Promise<number>公开方法;参数与返回类型以签名列为准。
repeatScanCursor方法repeatScanCursor(cursor: string): void公开方法;参数与返回类型以签名列为准。
scan方法scan(cursor: string, _matchToken: "MATCH", pattern: string, _countToken: "COUNT", count: number): Promise<[string, string[]]>公开方法;参数与返回类型以签名列为准。
seedStream方法seedStream(key: string): void公开方法;参数与返回类型以签名列为准。
xadd方法xadd(key: string, _id: "*", field: "entry", value: string): Promise<string>公开方法;参数与返回类型以签名列为准。
xrange方法xrange(key: string, start: "-", end: "+"): Promise<Array<[string, string[]]>>公开方法;参数与返回类型以签名列为准。
xrevrange方法xrevrange(key: string, end: "+", start: "-", _countToken: "COUNT", count: 1): Promise<Array<[string, string[]]>>公开方法;参数与返回类型以签名列为准。
xtrim方法xtrim(key: string, strategy: "MAXLEN", threshold: number): Promise<number>公开方法;参数与返回类型以签名列为准。

InMemoryWorkingMemoryMigrationPort

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

声明

text
export declare class InMemoryWorkingMemoryMigrationPort implements WorkingMemoryMigrationPort {
    constructor(storage?: Map<string, WorkingMemoryMigrationEntry<unknown>[]>);
    append<TValue = unknown>(input: WorkingMemoryMigrationAppend<TValue>): Promise<void>;
    list<TValue = unknown>(scope: ManagedMemoryScope): Promise<Array<WorkingMemoryMigrationEntry<TValue>>>;
    latest<TValue = unknown>(scope: ManagedMemoryScope): Promise<WorkingMemoryMigrationEntry<TValue> | null>;
    clearScope(scope: ManagedMemoryScope, _budget?: Partial<RedisScanBudget>): Promise<RedisScanReport>;
}

公开成员

成员种类签名说明
append方法append<TValue = unknown>(input: WorkingMemoryMigrationAppend<TValue>): Promise<void>公开方法;参数与返回类型以签名列为准。
clearScope方法clearScope(scope: ManagedMemoryScope, _budget?: Partial<RedisScanBudget>): Promise<RedisScanReport>公开方法;参数与返回类型以签名列为准。
constructor构造函数(storage?: Map<string, WorkingMemoryMigrationEntry<unknown>[]>): InMemoryWorkingMemoryMigrationPort创建该类的实例。
latest方法latest<TValue = unknown>(scope: ManagedMemoryScope): Promise<WorkingMemoryMigrationEntry<TValue> | null>公开方法;参数与返回类型以签名列为准。
list方法list<TValue = unknown>(scope: ManagedMemoryScope): Promise<Array<WorkingMemoryMigrationEntry<TValue>>>公开方法;参数与返回类型以签名列为准。

redisWorkingMemoryBoundaryCases

memory-server-redis-migration-fixtures 模块导出的 Redis Working Memory Boundary Cases 常量。

声明

text
export declare const redisWorkingMemoryBoundaryCases: readonly RedisWorkingMemoryBoundaryCase[];

createInMemoryWorkingMemoryMigrationHarness

Create In Memory Working Memory Migration Harness 函数,提供 1 个公开调用签名;参数与返回类型见下表。

声明

text
export declare function createInMemoryWorkingMemoryMigrationHarness(): WorkingMemoryMigrationAcceptanceHarness;

调用签名

text
createInMemoryWorkingMemoryMigrationHarness(): WorkingMemoryMigrationAcceptanceHarness

参数

无参数。

返回值

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

createRedisStreamWorkingMemoryMigrationHarness

Create Redis Stream Working Memory Migration Harness 函数,提供 1 个公开调用签名;参数与返回类型见下表。

声明

text
export declare function createRedisStreamWorkingMemoryMigrationHarness(fixtureId: string, client?: InMemoryRedisStreamMigrationClient): WorkingMemoryMigrationAcceptanceHarness & {
    client: InMemoryRedisStreamMigrationClient;
};

调用签名

text
createRedisStreamWorkingMemoryMigrationHarness(fixtureId: string, client?: InMemoryRedisStreamMigrationClient): WorkingMemoryMigrationAcceptanceHarness & { client: InMemoryRedisStreamMigrationClient; }

参数

参数类型必需说明
fixtureIdstring必需参数;接受的值由类型列定义。
clientInMemoryRedisStreamMigrationClient可选参数;接受的值由类型列定义。

返回值

  • 类型: WorkingMemoryMigrationAcceptanceHarness & { client: InMemoryRedisStreamMigrationClient; }
  • 说明: 返回值契约由上述类型定义。

RedisWorkingMemoryBoundaryCase

Redis Working Memory Boundary Case 接口,共包含 6 个公开字段或方法。

声明

text
export interface RedisWorkingMemoryBoundaryCase {
    id: string;
    preloadCount: number;
    appendCount: number;
    maxMessages: number;
    concurrent: boolean;
    exactOrder: boolean;
}

契约成员

成员种类签名说明
appendCount属性appendCount: number公开属性;类型、只读和可选状态以签名列为准。
concurrent属性concurrent: boolean公开属性;类型、只读和可选状态以签名列为准。
exactOrder属性exactOrder: boolean公开属性;类型、只读和可选状态以签名列为准。
id属性id: string公开属性;类型、只读和可选状态以签名列为准。
maxMessages属性maxMessages: number公开属性;类型、只读和可选状态以签名列为准。
preloadCount属性preloadCount: number公开属性;类型、只读和可选状态以签名列为准。

WorkingMemoryMigrationAcceptanceHarness

Working Memory Migration Acceptance Harness 接口,共包含 2 个公开字段或方法。

声明

text
export interface WorkingMemoryMigrationAcceptanceHarness {
    port: WorkingMemoryMigrationPort;
    restart(): WorkingMemoryMigrationPort;
}

契约成员

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

RedisMigrationCommand

Redis Migration Command 公共类型别名;完整类型表达式见声明。

声明

text
export type RedisMigrationCommand = {
    name: 'XADD';
    key: string;
} | {
    name: 'XTRIM';
    key: string;
    strategy: 'MAXLEN';
    threshold: number;
} | {
    name: 'XRANGE';
    key: string;
    start: '-';
    end: '+';
} | {
    name: 'XREVRANGE';
    key: string;
    end: '+';
    start: '-';
    count: 1;
} | {
    name: 'SCAN';
    cursor: string;
    pattern: string;
    count: number;
} | {
    name: 'DEL';
    keys: string[];
};

WorkingMemoryMigrationHarnessFactory

Working Memory Migration Harness Factory 公共类型别名;完整类型表达式见声明。

声明

text
export type WorkingMemoryMigrationHarnessFactory = (fixtureId: string) => WorkingMemoryMigrationAcceptanceHarness;