UNPKG

@paroicms/server

Version:
73 lines (72 loc) 2.63 kB
import type { SiteAccessValue } from "@paroicms/internal-anywhere-lib"; import type { AppLogger } from "@paroicms/internal-server-lib"; import type { HomeRoutingCluster, ThemeConf } from "@paroicms/public-anywhere-lib"; import type { BackendHookHandler, HeadTagsHandler, RegisteredSite, RenderingHookHandler, SimpleTranslator } from "@paroicms/public-server-lib"; import type { MediaStorage } from "@paroicms/server-database-media-storage"; import type { ImageCacheEngine } from "@paroicms/server-image-cache-engine"; import type { TextCacheSystem } from "@paroicms/server-text-cache-system"; import type { Knex } from "knex"; import type { Liquid } from "liquidjs"; import type { SitePlugin } from "../connector/plugin-loader/plugin-types.js"; import type { PublicSiteContext } from "../connector/public-site-context-types.js"; import type { SiteConfiguration } from "../connector/site-schema/site-configuration.js"; export interface SiteContext extends PublicSiteContext { status: "ready"; regSite: RegisteredSite; logger: AppLogger; cn: Knex; siteConfiguration: SiteConfiguration; siteNodeId: string; homeRoutingCluster: HomeRoutingCluster; liquidEngine: Liquid; mediaStorage: MediaStorage; imageCache: ImageCacheEngine; textCache: TextCacheSystem; themeTranslator: SimpleTranslator; plugins: Map<string, SitePlugin>; pluginsBySlug: Map<string, SitePlugin>; headTagsHandlers: HeadTagsHandler[]; logNextQuery: (count?: number) => void; hooks: Map<string, PluginHookHandler[]>; renderingHooks: Map<string, PluginRenderingHookHandler[]>; access: SiteAccessValue; requestTracker: RequestTracker; } export interface RequestTracker { pendingRequests: Set<string>; requestQueue: Array<{ resolve: () => void; reject: (error: Error) => void; timeout: NodeJS.Timeout; }>; state: "normal" | "gracefulShutdown" | "backupMode"; } export interface PluginRenderingHookHandler { handler: RenderingHookHandler; plugin: SitePlugin; } export interface PluginHookHandler { handler: BackendHookHandler; plugin: SitePlugin; } export interface MigrationSiteContext { status: "migration"; fqdn: string; siteName: string; version?: string; siteDir: string; themeDir: string; dataDir: string; cacheDir: string; backupDir: string; siteUrl: string; themeConf: ThemeConf; regSite: RegisteredSite; logger: AppLogger; cn: Knex; deprecatedSiteSchema: { ParoiCMSSiteSchemaFormatVersion: string; languages: string[]; oldSchema: unknown; }; }