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
},