@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
85 lines (84 loc) • 3.49 kB
TypeScript
import { RouterManager } from '../routes';
import { ApplicationManager } from '../applicationManager';
import { History, HistoryOptions } from '../history';
import { Data } from '../data';
import { Locales, LocalesOptions } from '../locales';
import { Storage, StorageOptions } from '../storage';
import { MenuManager } from '../menuManager';
import LoggerManager, { LoggerOptions } from '../logger';
import { TasksManager } from '../tasks';
import IndexDBManager, { DBOptions } from '../indexDB';
declare global {
interface Window {
app: App;
}
}
export interface AppOptions {
logger?: LoggerOptions;
db?: DBOptions;
constants?: any;
history?: HistoryOptions;
storage?: StorageOptions;
locales?: LocalesOptions;
}
declare class App {
private static instance;
private plugins;
globalData: any;
router: RouterManager;
applicationManager: ApplicationManager;
history: History;
data: Data;
hooks: import("../hooks").HooksExport;
locales: Locales;
models: {
getStore: () => import("../models").Store;
StoreProvider: typeof import("react-redux").Provider;
setConfig: (models: any[]) => void;
};
request: {
get: (url: import("../request").RequestWrapperProps["url"], data: import("../request").RequestWrapperProps["data"], config: import("../request").RequestWrapperProps["config"]) => Promise<any>;
post: (url: import("../request").RequestWrapperProps["url"], data: import("../request").RequestWrapperProps["data"], config: import("../request").RequestWrapperProps["config"]) => Promise<any>;
put: (url: import("../request").RequestWrapperProps["url"], data: import("../request").RequestWrapperProps["data"], config: import("../request").RequestWrapperProps["config"]) => Promise<any>;
remove: (url: import("../request").RequestWrapperProps["url"], data: import("../request").RequestWrapperProps["data"], config: import("../request").RequestWrapperProps["config"]) => Promise<any>;
custom: (url: import("../request").RequestWrapperProps["url"], config: import("../request").RequestWrapperProps["config"]) => Promise<any>;
setConfig: (newConfig: Partial<import("../request").RequestConfig>) => void;
getConfig: () => import("../request").RequestConfig;
};
storage: Storage;
menuManager: MenuManager;
cookie: {
setCookie: (name: string, value: string, domain?: string) => void;
getCookie: (name: string) => string | null;
deleteCookie: (name: string, domain?: string) => void;
checkCookie: (name: string) => boolean;
updateCookie: (name: string, value: string, domain?: string) => void;
};
website: {
setTitle: (title: string) => void;
setIcon: (paramsIcon: string) => void;
setAppleWebAppTitle: (title: string) => void;
};
logger: LoggerManager;
pubsub: import("../pubsub").PubSub;
tasksManager: TasksManager;
dbManager: IndexDBManager | null;
sqlite: any;
constants: {
channel: string;
[key: string]: string;
};
private constructor();
static getInstance(options?: AppOptions): App;
setGlobalData(globalData: any): void;
usePlugin(name: string, plugin: any): void;
usePlugins(plugins: {
name: string;
plugin: any;
}[]): void;
getPlugin(name: string): any;
getGlobalData(): any;
install(): void;
unInstall(): void;
}
export default App;