UNPKG

@zenweb/tenant

Version:

Zenweb Tenant module

53 lines (52 loc) 1.19 kB
import { PoolOptions, PoolClusterOptions } from 'mysql2'; import { Context } from "@zenweb/core"; import { MySQLOption } from '@zenweb/mysql'; /** * 租户配置描述 */ export interface Tenant { /** * 所属数据库服务器名称 */ server: string; /** * 所属数据库名称 */ database: string; } /** * 数据库连接池配置 */ export interface TenantPools { /** * @param server 所属数据库服务器名称,对应 `Tenant.server` */ [server: string]: { /** * 主数据库(读写) - 必须设置 */ MASTER: PoolOptions; /** * 从库(只读) - 可选 */ SLAVES?: PoolOptions[]; }; } /** * 租户数据库服务器配置 */ export interface TenantOption extends Pick<MySQLOption, 'bindQuery'> { /** * 取得租户配置 * - 如果不能找到请使用 `ctx.fail` 抛出异常,或者返回一个默认租户? */ tenantGetter: (ctx: Context) => Tenant | Promise<Tenant>; /** * 数据库连接池配置 */ pools: TenantPools; /** * 集群设置 */ cluster?: PoolClusterOptions; }