MemoryStorage class
A simple in-memory storage provider that implements the Storage interface.
Remarks
This class provides a volatile storage solution that keeps data in memory, which means data is lost when the process terminates. It's primarily useful for:
- Development and testing scenarios
- Simple applications that don't require data persistence across restarts
- Stateless environments where external storage isn't available
MemoryStorage supports optimistic concurrency control through eTags and can be used as a singleton through the getSingleInstance() method to share state across different parts of an application.
Constructors
| Memory |
Creates a new instance of the MemoryStorage class. |
Methods
| delete(string[]) | Deletes storage items from memory. |
| get |
Gets a single shared instance of the MemoryStorage class. |
| read(string[]) | Reads storage items from memory. |
| write(Store |
Writes storage items to memory. |
Constructor Details
MemoryStorage({[k: string]: string})
Creates a new instance of the MemoryStorage class.
new MemoryStorage(memory?: {[k: string]: string})
Parameters
- memory
-
{[k: string]: string}
An optional initial memory store to seed the storage with data
Method Details
delete(string[])
Deletes storage items from memory.
function delete(keys: string[]): Promise<void>
Parameters
- keys
-
string[]
The keys of the items to delete
Returns
Promise<void>
A promise that resolves when the delete operation is complete
getSingleInstance()
Gets a single shared instance of the MemoryStorage class.
static function getSingleInstance(): MemoryStorage
Returns
The singleton instance of MemoryStorage
Remarks
Using this method ensures that the same storage instance is used across the application, allowing for shared state without passing references.
read(string[])
Reads storage items from memory.
function read(keys: string[]): Promise<StoreItem>
Parameters
- keys
-
string[]
The keys of the items to read
Returns
Promise<StoreItem>
A promise that resolves to the read items
write(StoreItem)
Writes storage items to memory.
function write(changes: StoreItem): Promise<void>
Parameters
- changes
- StoreItem
The items to write, indexed by key
Returns
Promise<void>
A promise that resolves when the write operation is complete
Remarks
This method supports optimistic concurrency control through eTags. If an item has an eTag, it will only be updated if the existing item has the same eTag. If an item has an eTag of '*' or no eTag, it will always be written regardless of the current state.