@paroicms/server
Version:
The ParoiCMS server
46 lines (45 loc) • 1.92 kB
TypeScript
import type { AppLoggerLevel } from "@paroicms/internal-server-lib";
import type { JtFqdnSitePackConf, JtGoogleAuthConf, JtHttpRedirection, JtImageProcessorConf, JtLocalDevAccountConf, JtPlatformAdminAccountConf, JtSingleSiteConf, JtSubDomainSitePackConf, PluginStaticConfigurations } from "@paroicms/public-server-lib";
export type AppConf = SingleSiteAppConf | MultisiteAppConf;
export interface AppConfBase {
port: number;
hostname?: string;
publicProtocol: "http" | "https";
publicPort: number;
adminUiPort: number;
logLevel: "silent" | AppLoggerLevel;
logFile?: string;
allowRobots: boolean;
immutableAssets: boolean;
cacheTimeToIdle: CacheDuration;
clearCacheAfterStart?: boolean;
clearImageCacheAfterStart?: boolean;
graphqlDevTools?: boolean;
generateMissingDatabases?: boolean;
googleAuth?: GoogleAuthConf;
imageProcessor: ImageProcessorConf;
localDevAccount?: LocalDevAccountConf;
platformAdminAccounts?: PlatformAdminAccountConf[];
plugins: PluginStaticConfigurations;
httpRedirections?: HttpRedirectionConf[];
}
export type CacheDuration = `${number}d` | "disabled" | "infinite";
export interface SingleSiteAppConf extends AppConfBase {
kind: "singleSite";
singleSite: SingleSiteConf;
}
export interface MultisiteAppConf extends AppConfBase {
kind: "multisite";
platform: {
dataDir: string;
};
sitePacks: (FqdnSitePackConf | SubDomainSitePackConf)[];
}
export type SingleSiteConf = JtSingleSiteConf;
export type FqdnSitePackConf = JtFqdnSitePackConf;
export type SubDomainSitePackConf = JtSubDomainSitePackConf;
export type GoogleAuthConf = JtGoogleAuthConf;
export type ImageProcessorConf = JtImageProcessorConf;
export type LocalDevAccountConf = JtLocalDevAccountConf;
export type PlatformAdminAccountConf = JtPlatformAdminAccountConf;
export type HttpRedirectionConf = JtHttpRedirection;