@paroicms/connector
Version:
An API to help build management tools for ParoiCMS instances
54 lines (53 loc) • 1.81 kB
TypeScript
import type { BackendHookHandler, HeadTagsHandler, ParoiCmsPlugin, PluginLiquidFilterHandler, PluginLiquidTagReturnsHtmlHandler, PluginLiquidTagReturnsVarHandler, 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[];
liquidTags: RegisteredLiquidTag[];
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 type RegisteredLiquidTag = RegisteredLiquidTagReturnsVar | RegisteredLiquidTagInjectHtml;
export interface RegisteredLiquidTagInjectHtml {
tagKind: "injectHtml";
tagName: string;
handler: PluginLiquidTagReturnsHtmlHandler;
}
export interface RegisteredLiquidTagReturnsVar {
tagKind: "assignToVar";
tagName: string;
handler: PluginLiquidTagReturnsVarHandler;
}