UNPKG

@wavequery/conductor

Version:
50 lines 1.57 kB
import { EventEmitter } from "events"; export class MemoryStore extends EventEmitter { constructor(options) { super(); this.provider = options.provider; this.namespace = options.namespace || "default"; this.defaultTTL = options.defaultTTL || 3600; // 1 hour default } getKey(key) { return `${this.namespace}:${key}`; } async remember(key, value, options = {}) { const item = { id: key, content: value, metadata: { timestamp: new Date(), type: options.type || "generic", ttl: options.ttl || this.defaultTTL, tags: options.tags, }, }; await this.provider.set(this.getKey(key), item); this.emit("set", key, item); } async recall(key) { const item = await this.provider.get(this.getKey(key)); if (!item) return null; this.emit("get", key, item); return item.content; } async forget(key) { await this.provider.delete(this.getKey(key)); this.emit("delete", key); } async searchByType(type) { const items = await this.provider.search({ type }); return items.map((item) => item.content); } async searchByTags(tags) { const items = await this.provider.search({ tags }); return items.map((item) => item.content); } async clear() { await this.provider.clear(); this.emit("clear"); } } //# sourceMappingURL=memory-store.js.map