import { Injectable, NestMiddleware } from '@nestjs/common'; import { Request, Response, NextFunction } from 'express'; import { tenantStore } from './tenant.store'; @Injectable() export class TenantMiddleware implements NestMiddleware { use(req: Request, res: Response, next: NextFunction) { const tenantId = req.headers['x-tenant-id'] as string; // Wrap the execution in the tenant store context // Initial values might be empty or partial until the AuthGuard validates them tenantStore.run({ tenantId: tenantId || '' }, () => { next(); }); } }