UNPKG

@foxpage/foxpage-types

Version:

foxpage sdk types

50 lines (49 loc) 1.38 kB
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; }