@foxpage/foxpage-types
Version:
foxpage sdk types
50 lines (49 loc) • 1.38 kB
TypeScript
import { FoxpageComponent } from '../component';
import { StructureNode } from '../structure';
export interface ModuleConfig<T = any, M extends Record<string, any> = Record<string, any>> {
version?: string;
isLive?: boolean;
deps?: string[];
softDeps?: string[];
type?: 'umd' | 'css' | 'js';
url?: string;
define?: () => T;
load?: () => Promise<T>;
injectWindow?: string;
umdModuleName?: string;
alias?: string[];
meta?: M;
}
export type ModuleConfigs = Record<string, ModuleConfig>;
export interface BrowserInitialStateOption {
renderMethod: 'hydrate' | 'render';
}
export interface BrowserInitialStatePage {
appId: string;
slug: string;
pageId: string;
name?: string;
locale?: string;
fileId?: string;
version?: string;
}
export interface BrowserResource {
requirejsLink: string;
libs: ModuleConfigs;
plugins?: ModuleConfigs;
}
export interface BrowserModule extends Pick<FoxpageComponent, 'name' | 'version' | 'meta' | 'isLive'> {
url: string;
deps?: string[];
}
export interface BrowserStructure extends StructureNode {
childrenIds: string[];
}
export interface BrowserInitialState {
root: string;
page: BrowserInitialStatePage;
modules: BrowserModule[];
structures: BrowserStructure[];
resource: BrowserResource;
option: BrowserInitialStateOption;
}