@paroicms/server
Version:
The ParoiCMS server
53 lines (52 loc) • 1.74 kB
TypeScript
import type { BackendHookHandler, HeadTagsHandler, ParoiCmsPlugin, PluginLiquidFilterHandler, PluginOutLiquidTagHandler, PluginSetLiquidTagHandler, PluginStaticConfiguration, PublicApiHandler, RenderingHookHandler } from "@paroicms/public-server-lib";
export interface SitePlugin {
pluginName: string;
staticConfiguration: PluginStaticConfiguration;
plugin: ParoiCmsPlugin;
publicAssetsDir?: string;
adminUiAssetsDir?: string;
adminUiPluginBaseUrl?: string;
slug: string;
publicApiHandler?: PublicApiHandler;
}
export interface InitializingSitePlugin extends SitePlugin {
initData: PluginInitData;
}
export interface PluginInitData {
adminUiPluginBaseUrl?: string;
liquidFilters: RegisteredLiquidFilter[];
outLiquidTagHandlers: RegisteredPluginOutLiquidTagHandler[];
setLiquidTagHandlers: RegisteredPluginSetLiquidTagHandler[];
headTagsHandlers: HeadTagsHandler[];
liquidRootDirectories: string[];
siteSchemaLibraryDirectories: string[];
hooks: RegisteredHook[];
renderingHooks: RegisteredRenderingHook[];
}
export interface RegisteredHook {
hookName: string;
handler: BackendHookHandler<any, any, any>;
options?: {
replace?: boolean;
};
}
export interface RegisteredRenderingHook {
hookName: string;
handler: RenderingHookHandler;
}
export interface RegisteredLiquidFilter {
filterName: string;
handler: PluginLiquidFilterHandler;
options?: {
raw?: boolean;
};
}
export interface RegisteredPluginOutLiquidTagHandler {
fnName: string;
handler: PluginOutLiquidTagHandler;
raw: boolean;
}
export interface RegisteredPluginSetLiquidTagHandler {
fnName: string;
handler: PluginSetLiquidTagHandler;
}