Files
openclaw/src/plugins/runtime/runtime-cache.ts
2026-03-24 21:00:36 +00:00

20 lines
388 B
TypeScript

export function defineCachedValue<T extends object, K extends PropertyKey>(
target: T,
key: K,
create: () => unknown,
): void {
let cached: unknown;
let ready = false;
Object.defineProperty(target, key, {
configurable: true,
enumerable: true,
get() {
if (!ready) {
cached = create();
ready = true;
}
return cached;
},
});
}