firejsx
Version:
The React Framework for SSB, SSR and Serverless technologies
96 lines (95 loc) • 2.7 kB
TypeScript
import { FunctionComponent } from "react";
export default interface FireJSX_CacheMap {
app?: FunctionComponent;
content?: any;
chunks?: PageChunks;
}
export interface pathsCacheElement {
content: any;
page: any;
}
declare global {
namespace NodeJS {
interface Global extends FireJSX_GLOBAL {
window: Window;
buildPageResolver: () => void | undefined;
FireJSX: any;
}
}
interface Window extends FireJSX_GLOBAL {
buildPageResolver: () => void | undefined;
FireJSX: any;
onbeforeunload: (Event: any) => boolean;
}
namespace FireJSX {
let app: FunctionComponent<{
app: FunctionComponent;
content: any;
}>;
let setApp: (App: FunctionComponent, Content: any) => void;
let run: (app: FunctionComponent) => void;
let version: string;
let lib: string;
let prefix: string;
let staticPrefix: string;
/**
* Chunks required to load app, and its entry point
*/
let pagesCache: {
[key: string]: {
chunks?: {
initial: string[];
};
app?: any;
};
};
/**
* Content of every page and the original file it belongs to
*/
let pathsCache: {
[key: string]: pathsCacheElement;
};
let isSSR: boolean;
let isHydrated: boolean;
let linkApi: {
lock: boolean;
/**
* Element if loaded, if false means preloaded but no loaded
*/
chunksStatusMap: {
[key: string]: boolean | Element;
};
loadMap: (url: string) => Promise<pathsCacheElement>;
preloadPage: (url: string) => Promise<void>;
loadPage: (url: string, pushState?: boolean) => Promise<void>;
preloadChunk: (chunk: string, rel: string) => void;
loadChunk: (chunk: string) => Element;
};
let showLoader: () => void;
let hideLoader: () => void;
}
namespace React {
}
}
export interface FireJSX_GLOBAL {
FireJSX_jsonp: any[];
__webpack_require__(resolveID1: any): any;
React?: any;
ReactDOM?: any;
ReactDOMServer?: any;
__FIREJSX_HELMET__: {
renderStatic: () => {
[Key: string]: {
toString: () => string;
};
};
canUseDOM: boolean;
};
}
export interface appPageChunks extends PageChunks {
runtime: string;
}
export interface PageChunks {
initial: string[];
async: string[];
}