/
githubmirror
/
tldraw
Обзор
Документация
Войти
/
githubmirror
/
tldraw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/editor/src/lib/exports/fetchCache.ts
27 строк
750 B
Mitja Bezenšek
fix(memory): clean up module-level state leaks after editor unmount (#8604)
28 апр 2026, 10:53
Не верифицирован
28 апр 2026, 10:53
5dfc426
Код
Авторство
О чём код?
import { FileHelpers, LruCache, assert, fetch } from '@tldraw/utils' export function fetchCache<T>(cb: (response: Response) => Promise<T>, init?: RequestInit) { const cache = new LruCache<string, Promise<T | null>>(100) return async function fetchCached(url: string): Promise<T | null> { const existing = cache.get(url) if (existing) return existing const promise = (async () => { try { const response = await fetch(url, init) assert(response.ok) return await cb(response) } catch (err) { console.error(err) return null } })() cache.set(url, promise) return promise } } export const resourceToDataUrl = fetchCache(async (response) => { return await FileHelpers.blobToDataUrl(await response.blob()) })