继承关系

  • BaseClient
    • StoreClient

构造函数

属性

apiUrl: string
asyncCaller: AsyncCaller
defaultHeaders: Record<string, HeaderValue>
onRequest?: RequestHook
timeoutMs: undefined | number

方法

  • 删除项。

    参数

    • namespace: string[]

      表示命名空间路径的字符串列表。

    • key: string

      项目的唯一标识符。

    返回 Promise<void>

    Promise

  • 类型参数

    • T

    参数

    • path: string
    • options: RequestInit & {
          json?: unknown;
          params?: Record<string, unknown>;
          signal?: AbortSignal;
          timeoutMs?: null | number;
          withResponse: true;
      }

    返回 Promise<[T, Response]>

  • 类型参数

    • T

    参数

    • path: string
    • 可选 options: RequestInit & {
          json?: unknown;
          params?: Record<string, unknown>;
          signal?: AbortSignal;
          timeoutMs?: null | number;
          withResponse?: false;
      }

    返回 Promise<T>

  • 检索单个项。

    参数

    • namespace: string[]

      表示命名空间路径的字符串列表。

    • key: string

      项目的唯一标识符。

    • 可选 options: {
          refreshTtl?: null | boolean;
      }
      • 可选 refreshTtl?: null | boolean

        是否在此读取操作上刷新 TTL。如果为 null,则使用存储的默认行为。

    返回 Promise<null | Item>

    Promise

    示例

    const item = await client.store.getItem(
    ["documents", "user123"],
    "item456",
    { refreshTtl: true }
    );
    console.log(item);
    // {
    // namespace: ["documents", "user123"],
    // key: "item456",
    // value: { title: "My Document", content: "Hello World" },
    // createdAt: "2024-07-30T12:00:00Z",
    // updatedAt: "2024-07-30T12:00:00Z"
    // }
  • 列出带可选匹配条件的命名空间。

    参数

    • 可选 options: {
          limit?: number;
          maxDepth?: number;
          offset?: number;
          prefix?: string[];
          suffix?: string[];
      }
      • 可选 limit?: number

        要返回的最大命名空间数(默认值为 100)。

      • 可选 maxDepth?: number

        可选整数,指定要返回的命名空间的最大深度。

      • 可选 offset?: number

        在返回结果之前要跳过的命名空间数(默认值为 0)。

      • 可选 prefix?: string[]

        表示命名空间前缀的可选字符串列表,用于过滤命名空间。

      • 可选 suffix?: string[]

        表示命名空间后缀的可选字符串列表,用于过滤命名空间。

    返回 Promise<ListNamespaceResponse>

    Promise

  • 参数

    • path: string
    • 可选 options: RequestInit & {
          json?: unknown;
          params?: Record<string, unknown>;
          timeoutMs?: null | number;
          withResponse?: boolean;
      }

    返回 [url: URL, init: RequestInit]

  • 存储或更新项目。

    参数

    • namespace: string[]

      表示命名空间路径的字符串列表。

    • key: string

      命名空间内项目的唯一标识符。

    • value: Record<string, unknown>

      包含项目数据的字典。

    • 可选 options: {
          index?: null | false | string[];
          ttl?: null | number;
      }
      • 可选 index?: null | false | string[]

        控制搜索索引 - null(使用默认值),false(禁用),或要索引的字段路径列表。

      • 可选 ttl?: null | number

        项的可选生存时间(分钟),null 表示永不 expires。

    返回 Promise<void>

    Promise

    示例

    await client.store.putItem(
    ["documents", "user123"],
    "item456",
    { title: "My Document", content: "Hello World" },
    { ttl: 60 } // expires in 60 minutes
    );
  • 在命名空间前缀内搜索项。

    参数

    • namespacePrefix: string[]

      表示命名空间前缀的字符串列表。

    • 可选 options: {
          filter?: Record<string, unknown>;
          limit?: number;
          offset?: number;
          query?: string;
          refreshTtl?: null | boolean;
      }
      • 可选 filter?: Record<string, unknown>

        可选的键值对字典,用于过滤结果。

      • 可选 limit?: number

        要返回的最大项目数(默认值为 10)。

      • 可选 offset?: number

        在返回结果之前要跳过的项目数(默认值为 0)。

      • 可选 query?: string

        可选的搜索查询。

      • 可选 refreshTtl?: null | boolean

        是否刷新此搜索返回的项的 TTL。如果为 null,则使用存储的默认行为。

    返回 Promise<SearchItemsResponse>

    Promise

    示例

    const results = await client.store.searchItems(
    ["documents"],
    {
    filter: { author: "John Doe" },
    limit: 5,
    refreshTtl: true
    }
    );
    console.log(results);
    // {
    // items: [
    // {
    // namespace: ["documents", "user123"],
    // key: "item789",
    // value: { title: "Another Document", author: "John Doe" },
    // createdAt: "2024-07-30T12:00:00Z",
    // updatedAt: "2024-07-30T12:00:00Z"
    // },
    // // ... additional items ...
    // ]
    // }