@multitenant/core
v0.5.2
Published
Core multi-tenant / multi-market engine used by all other `@multitenant/*` packages.
Readme
@multitenant/core
Core multi-tenant / multi-market engine used by all other @multitenant/* packages.
It provides:
TenantsConfigtype describingtenants.config.jsoncreateTenantRegistry(config?, options?)→TenantRegistry- Resolution helpers:
resolveByHost,resolveByRequest getTenantConfig(registry, tenantKey),isTenantFeatureEnabled(flags, name)— server / shared flag checks- Typed errors:
MultitenantError,InvalidTenantsConfigError,DomainResolutionError,TenantNotFoundError,isMultitenantError— see errors doc - Identity types:
Identity,EncodedSession - Access guards:
canAccessTenant,assertAccess
Install
npm install @multitenant/coreBasic usage
import type { TenantsConfig } from '@multitenant/core';
import { createTenantRegistry } from '@multitenant/core';
const config: TenantsConfig = {
version: 1,
markets: { /* ... */ },
tenants: { /* ... */ },
};
// Manual mode: pass the loaded config
const registry = createTenantRegistry(config);
// Node-only convenience mode:
// const registry = createTenantRegistry();
// (auto-loads `<process.cwd()>/tenants.config.json`; in edge runtimes pass config explicitly)
const resolved = registry.resolveByHost('us.example.com', { environment: 'production' });Open source
MIT licensed — github.com/klypalskyi/multitenant · Issues · npm
