wip: cloud

This commit is contained in:
Dax Raad
2025-09-02 03:14:56 -04:00
parent 47d4c87bdd
commit 810c9cff1d
33 changed files with 579 additions and 2197 deletions

View File

@@ -1,11 +1,18 @@
export function memo<T>(fn: () => T) {
export function memo<T>(fn: () => T, cleanup?: (input: T) => Promise<void>) {
let value: T | undefined
let loaded = false
return (): T => {
const result = (): T => {
if (loaded) return value as T
loaded = true
value = fn()
return value as T
}
result.reset = async () => {
if (cleanup && value) await cleanup(value)
loaded = false
value = undefined
}
return result
}