import type { EntityId } from '../core/types' import type { KeyedStore, KeyedStoreFactory } from '../core/keyedStore' export function memoryStore(): KeyedStoreFactory { return () => { const m = new Map() return { async read(key) { return m.get(key) }, async readMany(keys) { const out: Array = new Array(keys.length) for (let i = 0; i < keys.length; i++) out[i] = m.get(keys[i]) return out }, async readAll() { return [...m.values()] }, async write(items) { for (let i = 0; i < items.length; i++) m.set(items[i].key, items[i].value) }, async delete(key) { m.delete(key) }, } satisfies KeyedStore } } export function noopStore(): KeyedStoreFactory { return () => noop as KeyedStore } const noop: KeyedStore = { async read() { return undefined }, async readMany(keys) { return new Array(keys.length).fill(undefined) }, async readAll() { return [] }, async write() {}, async delete() {}, }