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>