/
aqa
/
claude-code
Обзор
Документация
Войти
/
aqa
/
claude-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ink/line-width-cache.ts
24 строки
734 B
kuberwastaken
new initial commit (history rewritten)
01 апр 2026, 14:57
01 апр 2026, 14:57
c1996f2
Код
Авторство
О чём код?
import { stringWidth } from './stringWidth.js' // During streaming, text grows but completed lines are immutable. // Caching stringWidth per-line avoids re-measuring hundreds of // unchanged lines on every token (~50x reduction in stringWidth calls). const cache = new Map<string, number>() const MAX_CACHE_SIZE = 4096 export function lineWidth(line: string): number { const cached = cache.get(line) if (cached !== undefined) return cached const width = stringWidth(line) // Evict when cache grows too large (e.g. after many different responses). // Simple full-clear is fine — the cache repopulates in one frame. if (cache.size >= MAX_CACHE_SIZE) { cache.clear() } cache.set(line, width) return width }