fix: occasional "uncaught" errors in console

Massimo Melina committed Oct 23, 2025 at 13:38 UTC 280754dacdd8199300049d7aff6fc7c2dc5dfc02
2 files changed +4 -4
frontend/src/components.ts
+1 -1
@@ -154,7 +154,7 @@ export function Btn({ icon, label, tooltip, toggled, onClick, onClickAnimation,
154 setSuccess(true)
155 clearTimeout(t.current)
156 t.current = setTimeout(() => setSuccess(false), 1000)
157 - })
157 + }, () => {})
158 },
159 ...rest,
160 ...asText ? { role: 'button', style: { cursor: 'pointer', ...rest.style } } : undefined,
src/expiringCache.ts
+3 -3
@@ -1,4 +1,4 @@
1 -export function expiringCache<T, K=string>(ttl: number) {
1 +export function expiringCache<T, K=string>(ttlMs: number) {
2 const o = new Map<K,T>()
3 return Object.assign(o, {
4 try(k: K, creator: () => T): T {
@@ -6,8 +6,8 @@ export function expiringCache<T, K=string>(ttl: number) {
6 if (ret === undefined) {
7 ret = creator()
8 o.set(k, ret)
9 - Promise.resolve(ret).then(() => // in case of async, wait for it to be done before starting the timer
10 - setTimeout(() => o.delete(k), ttl) )
9 + // in case of async, wait for it to be done before starting the timer
10 + Promise.resolve(ret).finally(() => setTimeout(() => o.delete(k), ttlMs)).catch(() => {})
11 }
12 return ret
13 },