@walkeros/store-memory
v3.0.2
Published
In-memory store for walkerOS with LRU eviction, TTL support, and namespace utility
Maintainers
Readme
@walkeros/store-memory
In-process key-value store with LRU eviction, TTL expiration, and namespace support.
Source Code | NPM | Documentation
Quick start (bundled mode)
{
"version": 3,
"flows": {
"default": {
"server": {},
"stores": {
"cache": {
"package": "@walkeros/store-memory",
"config": {
"settings": {
"maxSize": 10485760,
"maxEntries": 1000
}
}
}
}
}
}
}Integrated mode
import { startFlow } from '@walkeros/collector';
import { storeMemoryInit } from '@walkeros/store-memory';
await startFlow({
stores: {
cache: {
code: storeMemoryInit,
config: {
settings: {
maxSize: 10 * 1024 * 1024, // 10 MB (default)
maxEntries: 1000,
},
},
},
},
});Features
- LRU eviction: Least-recently-used entries are evicted when
maxSizeormaxEntriesis exceeded - TTL expiration: Optional per-entry time-to-live in milliseconds
- Namespace utility: Scope keys with
withNamespace(store, 'prefix') - Mock store:
createMockStore()for unit testing with operation tracking - Platform-agnostic: Works in both browser and server flows
Installation
npm install @walkeros/store-memoryConfiguration
| Setting | Type | Required | Default | Description |
| ------------ | -------- | -------- | ------------------ | --------------------------- |
| maxSize | number | No | 10485760 (10 MB) | Maximum total size in bytes |
| maxEntries | number | No | — | Maximum number of entries |
API
const value = store.get('key'); // T | undefined
store.set('key', 'value'); // void
store.set('key', 'value', 5000); // void (TTL in ms)
store.delete('key'); // void
store.destroy(); // void (clears all)Programmatic usage
Use createMemoryStore() directly when you don't need the Store.Init wrapper:
import { createMemoryStore, withNamespace } from '@walkeros/store-memory';
const store = createMemoryStore<string>({ maxSize: 1024 });
const sessions = withNamespace(store, 'session');
sessions.set('user', 'alice'); // stored as "session:user"Testing
import { createMockStore } from '@walkeros/store-memory';
const store = createMockStore<string>();
store.set('key', 'value');
store.get('key');
console.log(store._sets); // [{ key: 'key', value: 'value', ttl: undefined }]
console.log(store._gets); // ['key']
console.log(store._deletes); // []