UNPKG

@foxpage/foxpage-types

Version:

foxpage sdk types

31 lines (30 loc) 1.27 kB
import { BrowserInitialStateOption, BrowserInitialStatePage, BrowserModule, BrowserResource, BrowserStructure, ModuleConfig } from '../browser'; import { FoxpageCSRHooks } from '../hook'; export interface RenderOptions extends BrowserInitialStateOption { inDesigner?: boolean; } export interface CSRLoader { addModule(mods: Record<string, ModuleConfig>): void; addModule(name: string, opt: ModuleConfig): void; addModule(nameOrMods: string | Record<string, ModuleConfig>, opt?: ModuleConfig): void; loadModule(list: string[]): Promise<any[]>; loadModule<T = any>(name: string, ver?: string): Promise<T>; loadModule(nameOrList: string | string[], ver?: string): Promise<any[]>; } export type CSRPluginVisitor = { [K in keyof FoxpageCSRHooks]: FoxpageCSRHooks[K]; }; export type CSRPlugin = () => { visitor: CSRPluginVisitor | (() => CSRPluginVisitor) | (() => Promise<CSRPluginVisitor>); }; export interface CSRContext { readonly root: string; page: BrowserInitialStatePage; modules: BrowserModule[]; structures: BrowserStructure[]; structureMap: Record<string, BrowserStructure>; resource: BrowserResource; renderOptions: RenderOptions; plugins: Record<string, CSRPlugin>; loader: CSRLoader; }