MemoryAdapter<K, V>
Class: MemoryAdapter<K, V>
In-memory storage adapter using Map.
Implements all optional capabilities:
- scan: prefix-based key listing
- setIfNotExists: atomic conditional set
- compareAndSwap: atomic update with version check
- atomicBatch: atomic multi-key operations
Useful for:
- Unit testing
- Development without external dependencies
- Ephemeral data that doesn't need persistence
Type Parameters
| Type Parameter | Default type |
|---|---|
K extends string | string |
V | unknown |
Implements
FlashcoreAdapter<K,V>
Constructors
new MemoryAdapter()
new MemoryAdapter<K, V>(): MemoryAdapter<K, V>Returns
MemoryAdapter<K, V>
Properties
| Property | Modifier | Type | Default value | Description |
|---|---|---|---|---|
name | readonly | "MemoryAdapter" | 'MemoryAdapter' | Human-readable adapter name for logging and introspection. |
Methods
atomicBatch()
atomicBatch(ops): voidApply a batch of operations atomically.
In memory, this is trivially atomic since JavaScript is single-threaded. Validates check operations before applying any changes.
Parameters
| Parameter | Type |
|---|---|
ops | BatchOperation<K, V>[] |
Returns
void
Implementation of
capabilities()
capabilities(): AdapterCapabilitiesReportReport extended capabilities.
Returns
Implementation of
clear()
clear(): voidClear all data.
Returns
void
Implementation of
compareAndSwap()
compareAndSwap(
key,
expected,
next): booleanCompare and swap: update only if current value equals expected.
Uses JSON serialization for deep equality check. Returns true if swap succeeded, false if value differs.
Parameters
| Parameter | Type |
|---|---|
key | K |
expected | V |
next | V |
Returns
boolean
Implementation of
FlashcoreAdapter.compareAndSwap
delete()
delete(key): booleanDelete a key. Returns true if the key existed and was deleted.
Parameters
| Parameter | Type |
|---|---|
key | K |
Returns
boolean
Implementation of
entries()
entries(): [K, V][]Get all entries (for testing/debugging).
Returns
[K, V][]
get()
get(key): VGet a value by key. Returns undefined if the key does not exist.
Parameters
| Parameter | Type |
|---|---|
key | K |
Returns
V
Implementation of
has()
has(key): booleanCheck if a key exists. Must return true for stored falsy values (0, false, '', null).
Parameters
| Parameter | Type |
|---|---|
key | K |
Returns
boolean
Implementation of
init()
init(): voidInitialize the adapter (e.g., connect, create directories). Called once during Flashcore.$.init().
Returns
void
Implementation of
keys()
keys(): K[]Get all keys (for testing/debugging).
Returns
K[]
restore()
restore(snapshot): voidRestore from a snapshot (for testing).
Parameters
| Parameter | Type |
|---|---|
snapshot | Map<K, V> |
Returns
void
scan()
scan(prefix): K[]Scan for keys with a given prefix. Returns an array for simplicity (small keysets in testing).
Parameters
| Parameter | Type |
|---|---|
prefix | K |
Returns
K[]
Implementation of
set()
set(key, value): booleanSet a key-value pair. Returns true if the operation succeeded.
Parameters
| Parameter | Type |
|---|---|
key | K |
value | V |
Returns
boolean
Implementation of
setIfNotExists()
setIfNotExists(key, value): booleanSet a key only if it doesn't exist. Returns true if set, false if key already exists.
Parameters
| Parameter | Type |
|---|---|
key | K |
value | V |
Returns
boolean
Implementation of
FlashcoreAdapter.setIfNotExists
shutdown()
shutdown(): voidShutdown the adapter (e.g., close connections).
Returns
void
Implementation of
size()
size(): numberGet the number of stored keys.
Returns
number
snapshot()
snapshot(): Map<K, V>Get a snapshot of the storage (for testing).
Returns
Map<K, V>
