From 810c9cff1db91f10158cc002dc70b89871762e1e Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Tue, 2 Sep 2025 03:14:56 -0400 Subject: wip: cloud --- cloud/core/src/util/memo.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'cloud/core/src/util') diff --git a/cloud/core/src/util/memo.ts b/cloud/core/src/util/memo.ts index 3c84cf1fb..49043010f 100644 --- a/cloud/core/src/util/memo.ts +++ b/cloud/core/src/util/memo.ts @@ -1,11 +1,18 @@ -export function memo(fn: () => T) { +export function memo(fn: () => T, cleanup?: (input: T) => Promise) { 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 } -- cgit v1.2.3