MCPcopy Index your code
hub / github.com/Effect-TS/effect / unsafeInvalidate

Function unsafeInvalidate

packages/experimental/src/Reactivity.ts:32–55  ·  view source on GitHub ↗
(keys: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>>)

Source from the content-addressed store, hash-verified

30 const handlers = new Map<number | string, Set<() => void>>()
31
32 const unsafeInvalidate = (keys: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>>): void => {
33 if (Array.isArray(keys)) {
34 for (let i = 0; i < keys.length; i++) {
35 const set = handlers.get(stringOrHash(keys[i]))
36 if (set === undefined) continue
37 for (const run of set) run()
38 }
39 } else {
40 const record = keys as ReadonlyRecord<string, Array<unknown>>
41 for (const key in record) {
42 const hashes = idHashes(key, record[key])
43 for (let i = 0; i < hashes.length; i++) {
44 const set = handlers.get(hashes[i])
45 if (set === undefined) continue
46 for (const run of set) run()
47 }
48
49 const set = handlers.get(key)
50 if (set !== undefined) {
51 for (const run of set) run()
52 }
53 }
54 }
55 }
56
57 const invalidate = (
58 keys: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>>

Callers 1

invalidateFunction · 0.85

Calls 4

stringOrHashFunction · 0.85
idHashesFunction · 0.85
runFunction · 0.70
getMethod · 0.65

Tested by

no test coverage detected