Skip to content

Storage

Defined in: src/storage/storage.ts:64

A backend for storing and retrieving raw bytes under string keys.

The interface is deliberately minimal — four operations over opaque Uint8Array values. Implementations must treat keys as opaque path-like strings (segments separated by /) and must round-trip the bytes they are given unchanged.

The ListQuery type parameter controls what list accepts. It defaults to string (a key prefix), which every backend supports. Implementations may widen it to accept a richer query object (e.g. a DynamoDB partition/sort-key filter) while still accepting a plain string for SDK-internal callers.

Implement this to add a custom backend; the SDK ships InMemoryStorage, LocalFileStorage, and S3Storage.

Type ParameterDefault type
ListQuerystring
write(key, data): Promise<void>;

Defined in: src/storage/storage.ts:72

Stores data under key, overwriting any existing value.

ParameterTypeDescription
keystringOpaque, /-separated key identifying the value
dataUint8ArrayRaw bytes to persist

Promise<void>

StorageError if the write fails


read(key): Promise<Uint8Array<ArrayBufferLike>>;

Defined in: src/storage/storage.ts:81

Retrieves the bytes previously stored under key.

ParameterTypeDescription
keystringThe key to read

Promise<Uint8Array<ArrayBufferLike>>

The stored bytes, or null if no value exists for key

StorageError if the read fails for a reason other than a missing key


delete(key): Promise<void>;

Defined in: src/storage/storage.ts:89

Deletes the value stored under key. A no-op if the key does not exist.

ParameterTypeDescription
keystringThe key to delete

Promise<void>

StorageError if the delete fails


list(query): Promise<string[]>;

Defined in: src/storage/storage.ts:105

Lists keys matching the given query.

When ListQuery is string (the default), this is a prefix match — returns full keys (not the suffix after the prefix), sorted lexicographically. An empty string lists every key.

Implementations may accept richer query objects (e.g. partition + sort-key filters) while still supporting a plain string prefix for SDK-internal callers.

ParameterTypeDescription
queryListQueryA string prefix or backend-specific query object

Promise<string[]>

The matching keys, sorted ascending

StorageError if the listing fails


optional namespace(prefix): Storage;

Defined in: src/storage/storage.ts:116

Returns a view of this storage with all keys prefixed by prefix. The original storage is not mutated.

Optional — shipped backends implement this, custom backends may omit it.

ParameterTypeDescription
prefixstringPrefix to prepend to all keys

Storage

A Storage view scoped to the given prefix