Skip to main content
Alpha

@netscript/kv

Reactive key-value storage with a unified API across Deno KV, Redis, and in-memory backends. This page is generated from the package's public surface with deno doc (US-2). For the full index of packages and plugins return to the reference overview.

The root entrypoint (@netscript/kv) exposes the stable shared lifecycle API, the portable KV types, and the lightweight Deno KV and in-memory adapters. Three sub-path exports carry the heavier integrations:

Shared lifecycle

The shared singleton resolves a provider once (auto-detecting from the environment) and hands back a WatchableKv for the rest of the process.

Symbol Signature Description
getKv function getKv(config?: SharedKvConfig): Promise<WatchableKv> Resolve the shared WatchableKv singleton, initializing on first access.
getRawKv async function getRawKv(config?: SharedKvConfig): Promise<Deno.Kv> Resolve the raw Deno.Kv instance when the shared provider is Deno KV.
getActiveProvider function getActiveProvider(): KvProvider | null Return the currently active provider, or null before initialization.
getKvPath function getKvPath(): string | undefined Return the Deno KV path currently in use, or the discovered default.
getRedisConnectionFromEnv function getRedisConnectionFromEnv(): string | undefined Read a normalized Redis connection string from the environment.
isKvInitialized function isKvInitialized(): boolean Check whether the shared adapter has been initialized.
isWatchable function isWatchable(store: KvStore): store is WatchableKv Type guard for stores that implement the WatchableKv contract.
resetKv async function resetKv(): Promise<void> Reset the shared state for tests or isolated validation runs.
closeKv async function closeKv(): Promise<void> Close and clear the shared adapter state.

Adapters

Symbol Kind Signature Description
DenoKvAdapter class class DenoKvAdapter implements WatchableKv Deno-native adapter backed by Deno.Kv, with native watch support.
MemoryKvAdapter class class MemoryKvAdapter implements WatchableKv Volatile adapter that keeps all data in process memory.

Store contracts

Symbol Kind Signature Description
KvStore interface interface KvStore extends AsyncDisposable Base key-value storage contract (get/set/delete/has/list/atomic/close).
WatchableKv interface interface WatchableKv extends KvStore Extends KvStore with reactive watch and watchPrefix capabilities.
SharedKvConfig interface interface SharedKvConfig Options for configuring the shared KV instance.

Keys, entries, and options

Symbol Kind Signature Description
KvKey type alias type KvKey = readonly Deno.KvKeyPart[] Portable key format shared by all adapters.
KvEntry interface interface KvEntry<T> Key-value entry returned from get() and list().
KvSetOptions interface interface KvSetOptions Options for KvStore.set() (for example expireIn).
KvListOptions interface interface KvListOptions Selector and pagination options for KvStore.list().
KvProvider type alias type KvProvider = 'redis' | 'deno-kv' | 'nitro' | 'auto' Providers supported by the shared KV lifecycle helpers.

Atomic operations

Symbol Kind Signature Description
AtomicCheck interface interface AtomicCheck Versionstamp check used by atomic compare-and-swap operations.
AtomicMutation type alias type AtomicMutation = { type: 'set'; key: KvKey; value: unknown; expireIn?: number } | { type: 'delete'; key: KvKey } | { type: 'sum' | 'min' | 'max'; key: KvKey; value: bigint } Mutation operations accepted by KvStore.atomic().
AtomicResult interface interface AtomicResult Result returned from an atomic operation.

Watch events

Symbol Kind Signature Description
WatchEvent interface interface WatchEvent<T> Event emitted when an observed key changes.
WatchOptions interface interface WatchOptions Options for WatchableKv.watch().
WatchPrefixOptions interface interface WatchPrefixOptions extends WatchOptions Options for WatchableKv.watchPrefix().

Sub-path exports

The following entrypoints are published alongside the root export. Each is generated from its own deno doc surface.

Export Entrypoint Purpose
@netscript/kv ./mod.ts Shared lifecycle, adapters, and types (documented above).
@netscript/kv/redis ./redis.ts Redis adapter (documented below).
@netscript/kv/kvdex ./kvdex.ts kvdex bridge factory + re-exported kvdex core (documented below).
@netscript/kv/testing ./src/testing/mod.ts Shared KV port contract harness (documented below).

@netscript/kv/redis

Importing this module re-exports the Redis adapter and self-registers the 'redis' provider factory with the shared lifecycle. It also re-exports the shared store contracts (KvStore, WatchableKv, KvKey, KvEntry, KvListOptions, KvSetOptions, AtomicCheck, AtomicMutation, AtomicResult, WatchEvent, WatchOptions, WatchPrefixOptions).

Symbol Kind Signature Description
RedisKvAdapter class class RedisKvAdapter implements WatchableKv Distributed Redis adapter for @netscript/kv.
RedisKvOptions interface interface RedisKvOptions Redis connection options for the adapter.

@netscript/kv/kvdex

The kvdex bridge factory plus a curated re-export of the kvdex core APIs and Deno-KV-compatible types.

Symbol Kind Signature Description
createNetscriptDb function async function createNetscriptDb<T>(schema: T, options?: CreateNetscriptDbOptions): Promise<ReturnType<kvdex>> Create a kvdex database backed by the active @netscript/kv provider.
CreateNetscriptDbOptions interface interface CreateNetscriptDbOptions Options for createNetscriptDb.
WatchableKvBridge class class WatchableKvBridge Adapts a WatchableKv to the DenoKv interface kvdex expects.
KvdexSchema type alias type KvdexSchema = Record<string, any> Accepted schema shape, structurally compatible with kvdex's SchemaDefinition.
kvdex function function kvdex<TSchema>(options: KvdexOptions<TSchema>): Database<TSchema> Re-exported kvdex database factory.
collection function function collection<TInput, TOutput, TOptions>(model, options?): BuilderFn Re-exported kvdex collection builder.
model function function model<TOutput, TInput>(transform?): Model<TInput, TOutput> Re-exported kvdex model factory.

This entrypoint also re-exports the kvdex Deno-KV compatibility types: KvProvider, KvObject, DenoAtomicCheck, DenoAtomicOperation, DenoKvCommitError, DenoKvCommitResult, DenoKvEnqueueOptions, DenoKvEntryMaybe, DenoKvGetOptions, DenoKvKeyPart, DenoKvListIterator, DenoKvListOptions, DenoKvListSelector, DenoKvSetOptions, DenoKvStrictKey, and DenoKvWatchOptions.

@netscript/kv/testing

A reusable contract harness for adapter authors. Re-exports the shared KvStore and WatchableKv contracts alongside the test helpers.

Symbol Kind Signature Description
runKvStoreContract function function runKvStoreContract(options: KvStoreContractOptions): void Register the canonical KV store contract tests against an adapter.
KvStoreContractOptions interface interface KvStoreContractOptions Options for runKvStoreContract.
createMemoryKvAdapter function function createMemoryKvAdapter(): MemoryKvAdapter Factory for a clean in-memory KV adapter for downstream tests.
MemoryKvAdapter class class MemoryKvAdapter implements WatchableKv Volatile in-memory adapter (re-exported from the root).

Back to the reference overview.