@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
51 lines (50 loc) • 1.84 kB
TypeScript
import App from "../app";
import { LoadLibraryByUrlParams } from "../locales/type";
import { MenuItem } from "../menuManager/index";
export type ApplicationInterface = {
page_type: "low_code" | "code";
page_id: number | string;
page_code: string;
page_version?: string;
page_name: string;
router: string;
category: "page" | "component" | "function";
Component?: any;
children?: any;
layout?: string;
originalUrl?: string;
};
export type ApplicationData = {
app_id: number;
app_name: string;
app_type: "system" | "custom";
interfaces: ApplicationInterface[];
functions?: any[];
menu?: {
[key: string]: MenuItem[];
};
locales?: LoadLibraryByUrlParams;
[key: string]: any;
};
export declare class Application {
options: ApplicationData;
name: ApplicationData["app_name"];
interfaces: Map<ApplicationInterface["page_name"], ApplicationInterface>;
components: Map<string, any>;
functions: Map<string, any>;
app: App;
constructor(options: ApplicationData, app: App);
afterAdd(application: Application): Promise<void>;
beforeLoad(): Promise<void>;
load(): Promise<void>;
initInterfaces(interfaces: ApplicationData["interfaces"]): void;
initFunctions(functions: ApplicationData["functions"]): void;
loadInterface(interfaceItem: ApplicationInterface): Promise<ApplicationInterface>;
setInterface(code: string, interfaceItem: ApplicationInterface): void;
setComponent(code: string, component: ApplicationInterface): void;
setFunction(code: string, functionItem: ApplicationInterface): void;
getInterface(code: string): ApplicationInterface | undefined;
getComponent(code: string): any;
getFunction(code: string): any;
runFunction(code: string, params?: any, ...args: any): any;
}