Skip to content

@codesoul-co/hypha-memory / provider-pagination

模块用法

用于把外部或本地 Provider 绑定到 Hypha Port。Provider pagination 模块公开 3 函数、2 接口。

从包入口导入

ts
import {
  beginProviderPage,
  encodeProviderCursor,
  finishProviderPage,
} from '@codesoul-co/hypha-memory';

import type {
  ProviderPageContext,
  ProviderPaginationBudget,
} from '@codesoul-co/hypha-memory';

使用要点

  • 2 个类型/接口用于应用代码、Adapter 或测试中的静态契约;请使用 import type,运行时不应依赖它们。
  • 3 个函数是该模块的直接操作入口;每个 overload 的必需/可选参数与返回类型均在下方列出。

公共导出

Symbol种类签名说明
beginProviderPage函数beginProviderPage(providerId: string, scope: ManagedMemoryScope, pagination: PaginationRequest | undefined, nowMs?: number): ProviderPageContextBegin Provider Page 函数,提供 1 个公开调用签名;参数与返回类型见下表。
encodeProviderCursor函数encodeProviderCursor(envelope: ProviderCursorEnvelope): stringEncode Provider Cursor 函数,提供 1 个公开调用签名;参数与返回类型见下表。
finishProviderPage函数finishProviderPage(context: ProviderPageContext, providerId: string, scope: ManagedMemoryScope, records: unknown[], nextProviderCursor?: string, nowMs?: number): { nextCursor?: string; hasMore: boolean; }Finish Provider Page 函数,提供 1 个公开调用签名;参数与返回类型见下表。
ProviderPageContext接口interface ProviderPageContextProvider Page Context 接口,共包含 5 个公开字段或方法。
ProviderPaginationBudget接口interface ProviderPaginationBudgetProvider Pagination Budget 接口,共包含 5 个公开字段或方法。

beginProviderPage

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

  • 种类: 函数
  • 导入: import { beginProviderPage } from '@codesoul-co/hypha-memory';
  • 源码模块: provider-pagination

声明

text
export declare function beginProviderPage(providerId: string, scope: ManagedMemoryScope, pagination: PaginationRequest | undefined, nowMs?: number): ProviderPageContext;

调用签名

text
beginProviderPage(providerId: string, scope: ManagedMemoryScope, pagination: PaginationRequest | undefined, nowMs?: number): ProviderPageContext

参数

参数类型必需说明
providerIdstring必需参数;接受的值由类型列定义。
scopeManagedMemoryScope必需参数;接受的值由类型列定义。
paginationPaginationRequest必需参数;接受的值由类型列定义。
nowMsnumber可选参数;接受的值由类型列定义。

返回值

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

encodeProviderCursor

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

  • 种类: 函数
  • 导入: import { encodeProviderCursor } from '@codesoul-co/hypha-memory';
  • 源码模块: provider-pagination

声明

text
export declare function encodeProviderCursor(envelope: ProviderCursorEnvelope): string;

调用签名

text
encodeProviderCursor(envelope: ProviderCursorEnvelope): string

参数

参数类型必需说明
envelopeProviderCursorEnvelope必需参数;接受的值由类型列定义。

返回值

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

finishProviderPage

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

  • 种类: 函数
  • 导入: import { finishProviderPage } from '@codesoul-co/hypha-memory';
  • 源码模块: provider-pagination

声明

text
export declare function finishProviderPage(context: ProviderPageContext, providerId: string, scope: ManagedMemoryScope, records: unknown[], nextProviderCursor?: string, nowMs?: number): {
    nextCursor?: string;
    hasMore: boolean;
};

调用签名

text
finishProviderPage(context: ProviderPageContext, providerId: string, scope: ManagedMemoryScope, records: unknown[], nextProviderCursor?: string, nowMs?: number): { nextCursor?: string; hasMore: boolean; }

参数

参数类型必需说明
contextProviderPageContext必需参数;接受的值由类型列定义。
providerIdstring必需参数;接受的值由类型列定义。
scopeManagedMemoryScope必需参数;接受的值由类型列定义。
recordsunknown[]必需参数;接受的值由类型列定义。
nextProviderCursorstring可选参数;接受的值由类型列定义。
nowMsnumber可选参数;接受的值由类型列定义。

返回值

  • 类型: { nextCursor?: string; hasMore: boolean; }
  • 说明: 返回值契约由上述类型定义。

ProviderPageContext

Provider Page Context 接口,共包含 5 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { ProviderPageContext } from '@codesoul-co/hypha-memory';
  • 源码模块: provider-pagination

声明

text
export interface ProviderPageContext {
    providerCursor?: string;
    envelope?: ProviderCursorEnvelope;
    budget: ProviderPaginationBudget;
    startedAt: string;
    nowMs: number;
}

契约成员

成员种类签名说明
budget属性budget: ProviderPaginationBudget公开属性;类型、只读和可选状态以签名列为准。
envelope属性envelope?: ProviderCursorEnvelope公开属性;类型、只读和可选状态以签名列为准。
nowMs属性nowMs: number公开属性;类型、只读和可选状态以签名列为准。
providerCursor属性providerCursor?: string公开属性;类型、只读和可选状态以签名列为准。
startedAt属性startedAt: string公开属性;类型、只读和可选状态以签名列为准。

ProviderPaginationBudget

Provider Pagination Budget 接口,共包含 5 个公开字段或方法。

  • 种类: 接口
  • 导入: import type { ProviderPaginationBudget } from '@codesoul-co/hypha-memory';
  • 源码模块: provider-pagination

声明

text
export interface ProviderPaginationBudget {
    maxPages: number;
    maxItems: number;
    maxBytes: number;
    maxDurationMs: number;
    maxCalls: number;
}

契约成员

成员种类签名说明
maxBytes属性maxBytes: number公开属性;类型、只读和可选状态以签名列为准。
maxCalls属性maxCalls: number公开属性;类型、只读和可选状态以签名列为准。
maxDurationMs属性maxDurationMs: number公开属性;类型、只读和可选状态以签名列为准。
maxItems属性maxItems: number公开属性;类型、只读和可选状态以签名列为准。
maxPages属性maxPages: number公开属性;类型、只读和可选状态以签名列为准。