UNPKG

@deno/kv

Version:

A Deno KV client library optimized for Node.js.

28 lines (27 loc) 2.13 kB
import { encodeBinary as encodeAtomicWrite } from "./proto/messages/com/deno/kv/datapath/AtomicWrite.js"; import { encodeBinary as encodeSnapshotRead } from "./proto/messages/com/deno/kv/datapath/SnapshotRead.js"; import { decodeBinary as decodeSnapshotReadOutput } from "./proto/messages/com/deno/kv/datapath/SnapshotReadOutput.js"; import { decodeBinary as decodeAtomicWriteOutput } from "./proto/messages/com/deno/kv/datapath/AtomicWriteOutput.js"; import { AtomicWrite, AtomicWriteOutput, SnapshotRead, SnapshotReadOutput, Watch } from "./proto/messages/com/deno/kv/datapath/index.js"; export { decodeAtomicWriteOutput, decodeSnapshotReadOutput, encodeAtomicWrite, encodeSnapshotRead, }; export type KvConnectProtocolVersion = 1 | 2 | 3; export declare function fetchDatabaseMetadata(url: string, accessToken: string, fetcher: typeof fetch, maxRetries: number, supportedVersions: KvConnectProtocolVersion[]): Promise<{ metadata: DatabaseMetadata; responseUrl: string; }>; export declare function fetchSnapshotRead(url: string, accessToken: string, databaseId: string, req: SnapshotRead, fetcher: typeof fetch, maxRetries: number, version: KvConnectProtocolVersion): Promise<SnapshotReadOutput>; export declare function fetchAtomicWrite(url: string, accessToken: string, databaseId: string, write: AtomicWrite, fetcher: typeof fetch, maxRetries: number, version: KvConnectProtocolVersion): Promise<AtomicWriteOutput>; export declare function fetchWatchStream(url: string, accessToken: string, databaseId: string, watch: Watch, fetcher: typeof fetch, maxRetries: number, version: KvConnectProtocolVersion): Promise<ReadableStream<Uint8Array>>; export interface DatabaseMetadata { readonly version: 1 | 2; readonly databaseId: string; readonly endpoints: EndpointInfo[]; readonly token: string; readonly expiresAt: string; } export interface EndpointInfo { /** A fully qualified URL, or a URL relative to the metadata URL. The path of the URL must not end with a slash. * e.g. https://data.example.com/v1, /v1, ./v1 */ readonly url: string; readonly consistency: "strong" | "eventual"; }