@deno/kv
Version:
A Deno KV client library optimized for Node.js.
23 lines (22 loc) • 1.67 kB
TypeScript
import { AtomicCheck, KvCommitError, KvCommitResult, KvConsistencyLevel, KvEntry, KvEntryMaybe, KvKey, KvListOptions, KvListSelector } from "./kv_types.js";
import { BaseKv, CursorHolder, DecodeV8, EncodeV8, Enqueue, KvMutation } from "./kv_util.js";
import { AtomicWrite, AtomicWriteOutput, SnapshotRead, SnapshotReadOutput, WatchKeyOutput } from "./proto/messages/com/deno/kv/datapath/index.js";
export { UnknownV8 } from "./v8.js";
export declare abstract class ProtoBasedKv extends BaseKv {
protected readonly decodeV8: DecodeV8;
protected readonly encodeV8: EncodeV8;
constructor(debug: boolean, decodeV8: DecodeV8, encodeV8: EncodeV8);
protected abstract snapshotRead(req: SnapshotRead, consistency: KvConsistencyLevel | undefined): Promise<SnapshotReadOutput>;
protected abstract atomicWrite(req: AtomicWrite): Promise<AtomicWriteOutput>;
protected get_<T = unknown>(key: KvKey, consistency?: KvConsistencyLevel): Promise<KvEntryMaybe<T>>;
protected getMany_(keys: readonly KvKey[], consistency?: KvConsistencyLevel): Promise<KvEntryMaybe<unknown>[]>;
protected commit(checks: AtomicCheck[], mutations: KvMutation[], enqueues: Enqueue[]): Promise<KvCommitResult | KvCommitError>;
protected listStream<T>(outCursor: CursorHolder, selector: KvListSelector, { batchSize, consistency, cursor: cursorOpt, limit, reverse }?: KvListOptions): AsyncGenerator<KvEntry<T>>;
}
export declare class WatchCache {
private readonly decodeV8;
private readonly keys;
private readonly lastValues;
constructor(decodeV8: DecodeV8, keys: readonly KvKey[]);
processOutputKeys(outputKeys: WatchKeyOutput[]): KvEntryMaybe<unknown>[];
}