diff --git a/packages/core/src/env-set/index.ts b/packages/core/src/env-set/index.ts index 6286275a5..7d76b0c28 100644 --- a/packages/core/src/env-set/index.ts +++ b/packages/core/src/env-set/index.ts @@ -52,10 +52,6 @@ export class EnvSet { return this.#pool; } - get poolSafe() { - return this.#pool; - } - get oidc() { if (!this.#oidc) { return throwNotLoadedError(); diff --git a/packages/core/src/tenants/index.ts b/packages/core/src/tenants/index.ts index 1f6f0b39d..d79ece85f 100644 --- a/packages/core/src/tenants/index.ts +++ b/packages/core/src/tenants/index.ts @@ -3,9 +3,10 @@ import LRUCache from 'lru-cache'; import Tenant from './Tenant.js'; export class TenantPool { - protected cache = new LRUCache({ + protected cache = new LRUCache>({ max: 100, - dispose: (tenant) => { + dispose: async (entry) => { + const tenant = await entry; void tenant.dispose(); }, }); @@ -18,7 +19,7 @@ export class TenantPool { } console.log('Init tenant:', tenantId); - const newTenant = await Tenant.create(tenantId); + const newTenant = Tenant.create(tenantId); this.cache.set(tenantId, newTenant); return newTenant; @@ -26,10 +27,10 @@ export class TenantPool { async endAll(): Promise { await Promise.all( - this.cache.dump().map(([, tenant]) => { - const { poolSafe } = tenant.value.envSet; + this.cache.dump().map(async ([, entry]) => { + const tenant = await entry.value; - return poolSafe?.end(); + return tenant.envSet.end(); }) ); }