MCPcopy Index your code
hub / github.com/anomalyco/opencode / createTabMemory

Function createTabMemory

packages/app/src/context/tab-memory.ts:8–33  ·  view source on GitHub ↗
(owner: Owner | null)

Source from the content-addressed store, hash-verified

6}
7
8export function createTabMemory(owner: Owner | null) {
9 const entries = new Map<string, Map<string, Entry>>()
10
11 const remove = (key: string) => {
12 const state = entries.get(key)
13 if (!state) return
14 for (const entry of state.values()) entry.dispose()
15 entries.delete(key)
16 }
17
18 return {
19 ensure<T>(key: string, name: string, init: () => T) {
20 const state = entries.get(key) ?? new Map<string, Entry>()
21 if (!entries.has(key)) entries.set(key, state)
22 const existing = state.get(name)
23 if (existing) return existing.value as T
24 const entry = createRoot((dispose) => ({ value: init(), dispose }), owner)
25 state.set(name, entry)
26 return entry.value
27 },
28 remove,
29 dispose() {
30 for (const key of entries.keys()) remove(key)
31 },
32 }
33}

Callers 2

tabs.tsxFile · 0.90
tabs.test.tsFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected