mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-01 20:31:19 +00:00
20 lines
388 B
TypeScript
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;
|
|
},
|
|
});
|
|
}
|