/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/app/src/context/global-sync/eviction.ts
28 строк
964 B
Adam
chore: refactoring and tests, splitting up files (#12495)
06 фев 2026, 19:02
Не верифицирован
06 фев 2026, 19:02
2c58dd6
Код
Авторство
О чём код?
import type { DisposeCheck, EvictPlan } from "./types" export function pickDirectoriesToEvict(input: EvictPlan) { const overflow = Math.max(0, input.stores.length - input.max) let pendingOverflow = overflow const sorted = input.stores .filter((dir) => !input.pins.has(dir)) .slice() .sort((a, b) => (input.state.get(a)?.lastAccessAt ?? 0) - (input.state.get(b)?.lastAccessAt ?? 0)) const output: string[] = [] for (const dir of sorted) { const last = input.state.get(dir)?.lastAccessAt ?? 0 const idle = input.now - last >= input.ttl if (!idle && pendingOverflow <= 0) continue output.push(dir) if (pendingOverflow > 0) pendingOverflow -= 1 } return output } export function canDisposeDirectory(input: DisposeCheck) { if (!input.directory) return false if (!input.hasStore) return false if (input.pinned) return false if (input.booting) return false if (input.loadingSessions) return false return true }