(sessionIDs: string[])
| 382 | } |
| 383 | |
| 384 | const evict = (sessionIDs: string[]) => { |
| 385 | if (sessionIDs.length === 0) return |
| 386 | const evicted = new Set(sessionIDs) |
| 387 | for (const [partID, item] of deltaBases) { |
| 388 | if (evicted.has(item.sessionID)) deltaBases.delete(partID) |
| 389 | } |
| 390 | sessionIDs.forEach((sessionID) => { |
| 391 | generations.delete(sessionID) |
| 392 | clearOptimistic(sessionID) |
| 393 | requests.delete(sessionID) |
| 394 | inflight.delete(sessionID) |
| 395 | inflightDiff.delete(sessionID) |
| 396 | inflightTodo.delete(sessionID) |
| 397 | messageLoads.delete(sessionID) |
| 398 | pendingParts.delete(sessionID) |
| 399 | orphanParts.delete(sessionID) |
| 400 | removedMessages.delete(sessionID) |
| 401 | }) |
| 402 | setData( |
| 403 | produce((draft) => { |
| 404 | dropSessionCaches(draft, sessionIDs) |
| 405 | }), |
| 406 | ) |
| 407 | setMeta( |
| 408 | produce((draft) => { |
| 409 | for (const sessionID of sessionIDs) { |
| 410 | delete draft.limit[sessionID] |
| 411 | delete draft.cursor[sessionID] |
| 412 | delete draft.complete[sessionID] |
| 413 | delete draft.loading[sessionID] |
| 414 | delete draft.at[sessionID] |
| 415 | } |
| 416 | }), |
| 417 | ) |
| 418 | } |
| 419 | |
| 420 | const protectedSessions = () => |
| 421 | new Set([ |
no test coverage detected