@multisystemsuite/timezone-engine-tenant-manager
v5.0.0
Published
Multi-tenant timezone manager for @multisystemsuite/timezone-engine
Maintainers
Readme
@multisystemsuite/timezone-engine-tenant-manager
Multi-tenant timezone manager for SaaS, HRMS, and ERP platforms with per-tenant timezone isolation.
What it is used for
- Each tenant (customer/org) has its own timezone and locale
- Isolated
TimezoneEngineinstances per tenant - SaaS apps where users belong to different regions
- Prevent cross-tenant timezone leakage in shared services
Install
npm install @multisystemsuite/timezone-engine-tenant-managerUsage
import { createTenantManager } from "@multisystemsuite/timezone-engine-tenant-manager";
const tenants = createTenantManager();
tenants.register({
tenantId: "acme-corp",
timezone: "America/New_York",
locale: "en-US",
});
tenants.register({
tenantId: "globex-in",
timezone: "Asia/Kolkata",
locale: "en-IN",
});
const tz = tenants.resolveTimezone("acme-corp");
const engine = tenants.getEngine("globex-in");
const formatted = engine.formatDate(new Date(), { format: "FULL" });Express middleware pattern
app.use((req, res, next) => {
const tenantId = req.headers["x-tenant-id"] as string;
req.timezone = tenants.resolveTimezone(tenantId, "UTC");
req.tzEngine = tenants.getEngine(tenantId);
next();
});Key exports
| Export | Purpose |
| --------------------------------- | -------------------------- |
| createTenantManager() | New registry instance |
| TenantManager.register() | Register tenant config |
| TenantManager.resolveTimezone() | Get tenant timezone |
| TenantManager.getEngine() | Isolated engine per tenant |
| defaultTenantManager | Shared singleton registry |
Related packages
@multisystemsuite/timezone-engine-core—TenantTimezoneRegistry@multisystemsuite/timezone-engine-node— request middleware
Keywords
timezone, multi-tenant, saas, isolation, enterprise, hrms, erp
License
MIT
