cyra-pure
Version:
single page application view engine
51 lines (50 loc) • 1.17 kB
TypeScript
import { Route } from './model/Route';
import { Action } from './model/Action';
import { Page } from './model/Page';
export interface ModelsObject {
userPages: {
[key: string]: {
pageClass: new () => Page;
pages: Array<Page>;
};
};
actions: Array<Action>;
routes: Array<Route>;
}
export interface SenquenceFunction {
(next: Function): any;
}
export interface PageTransitionObject {
fromPageDisappear: SenquenceFunction;
toPageAppear: SenquenceFunction;
}
export interface InitAppObject {
index: string;
root?: string;
alwaysReload?: boolean;
recordHistory?: boolean;
pageTransition?: PageTransitionObject;
dataSplit?: {
start: string;
key: string;
item: string;
};
}
export interface HashData {
path: string;
data: any;
copyIndex?: number;
pageIndex?: number;
}
export interface RouteData {
[index: string]: new (pageID?: string) => Page;
}
export interface ActionData {
[index: string]: string;
}
export interface ContextType {
rootContainer: HTMLElement;
currentAction: Action;
nextAction: Action;
data: any;
}