Skip to main content

IStorageProvider

Generic interface for storage providers.

Key Requirements

  • All operations must be atomic (complete fully or fail without side effects).
  • Designed for easy swapping between providers (e.g., in-memory ↔ database, in-memory ↔ file-based).

Methods

create()

create(keyId, domain, item): Promise<void>

Creates a new item in storage.

Parameters

keyId

string

The identifier for the item.

domain

StorageDomain

The storage domain.

item

string

The data to store.

Returns

Promise<void>


delete()

delete(keyId, domain): Promise<void>

Deletes an item from storage.

Parameters

keyId

string

The identifier for the item.

domain

StorageDomain

The storage domain.

Returns

Promise<void>


exists()

exists(keyId, domain): Promise<boolean>

Checks if an item exists in storage.

Parameters

keyId

string

The identifier for the item.

domain

StorageDomain

The storage domain.

Returns

Promise<boolean>

true if the item exists, false otherwise.


read()

read(keyId, domain): Promise<null | string>

Reads an item from storage.

Parameters

keyId

string

The identifier for the item.

domain

StorageDomain

The storage domain.

Returns

Promise<null | string>

The stored data, or null if not found.


update()

update(keyId, domain, item): Promise<void>

Updates an existing item in storage.

Parameters

keyId

string

The identifier for the item.

domain

StorageDomain

The storage domain.

item

string

The new data.

Returns

Promise<void>