From 2976bf4ec8c8ef2ce2db8512a500a90f7557d57b Mon Sep 17 00:00:00 2001 From: Ting Chien Meng Date: Fri, 15 Nov 2024 12:22:22 -0500 Subject: [PATCH] fix: ensure unique instances for each Service subclass using Map --- packages/core/src/types.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 040b743a68c..88f0bcdfd98 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -503,15 +503,17 @@ export interface IMemoryManager { } export abstract class Service { - private static instance: Service | null = null; + private static instances: Map = new Map(); static serviceType: ServiceType; public static getInstance(): T { - if (!Service.instance) { - // Use this.prototype.constructor to instantiate the concrete class - Service.instance = new (this as any)(); + if (!Service.instances.has(this)) { + Service.instances.set( + this, + new (this as unknown as { new (): T })() + ); } - return Service.instance as T; + return Service.instances.get(this) as T; } }