(keys: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>>)
| 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>> |
no test coverage detected