import { AuthDeduceRelationMap, EntityDict } from './Entity'; import { EntityDict as BaseEntityDict } from "../base-app-domain"; import { AsyncContext } from '../store/AsyncRowStore'; import { SyncConfig } from "./Sync"; import { AttrUpdateMatrix } from './EntityDesc'; import { ActionDefDict } from './Action'; import { StyleDict } from './Style'; /** * 后台配置 */ export type ServerConfiguration> = { database: { type: 'mysql'; host: string; database: string; port?: number; user: string; password?: string; connectionLimit: number; charset: "utf8mb4_general_ci"; }; workDir: { path: string; }; sync?: SyncConfig; }; /** * 前后台访问配置 */ export type AccessConfiguration = { routerPrefixes?: { aspect?: string; endpoint?: string; subscribe?: string; getSubscribePoint?: string; bridge?: string; }; http: { hostname: string; port?: number; ssl?: boolean; path?: string; }; }; /** * 业务逻辑的通用配置 */ export type CommonConfiguration = { attrUpdateMatrix: AttrUpdateMatrix; actionDefDict: ActionDefDict; authDeduceRelationMap: AuthDeduceRelationMap; selectFreeEntities?: (keyof ED)[]; updateFreeDict?: { [A in keyof ED]?: string[]; }; cacheSavedEntities?: (keyof ED)[]; cacheKeepFreshPeriod?: number; }; export type DependencyConfiguration = string[]; /** * 渲染相关定义 */ export type RenderConfiguration = { styleDict: StyleDict; }; /** * 编译环境配置 */ export type CompilerConfiguration = { webpack?: { resolve?: { alias?: Record; fallback?: Record; }; extraOakModules?: (string | RegExp)[]; }; };