Files
openclaw/src/shared/global-singleton.ts
Josh Lehman 50cc375c11 feat(context-engine): plumb sessionKey into all ContextEngine methods (#44157)
Merged via squash.

Prepared head SHA: 0b341f6f4c
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-12 12:43:36 -07:00

14 lines
476 B
TypeScript

export function resolveGlobalSingleton<T>(key: symbol, create: () => T): T {
const globalStore = globalThis as Record<PropertyKey, unknown>;
if (Object.prototype.hasOwnProperty.call(globalStore, key)) {
return globalStore[key] as T;
}
const created = create();
globalStore[key] = created;
return created;
}
export function resolveGlobalMap<TKey, TValue>(key: symbol): Map<TKey, TValue> {
return resolveGlobalSingleton(key, () => new Map<TKey, TValue>());
}