takin
Version:
Front end engineering base toolchain and scaffold
52 lines (51 loc) • 1.36 kB
TypeScript
declare type MethodInfo = {
pluginName: string;
};
/**
* 用于插件间共享函数方法
*/
export declare class MethodsContainer {
/**
* 保存共享方法
*/
private _methods;
/**
* 记录方法相关信息
*/
private _infos;
/**
* 记录当前共享方法所使用的插件名称
*/
private pluginName;
/**
* 父 container, 当存在时, 相关方法调用均会传递给 parent
*/
private parent?;
constructor(parent?: MethodsContainer, pluginName?: string);
/**
* 检查方法是否存在
* @param name - 共享方法名称
* @returns true or false
*/
has(name: string): boolean;
/**
* 获取方法信息, 目前仅包含注册当前方法的插件名称
* @param name - 共享方法名称
* @returns 共享方法信息
*/
getInfo(name: string): MethodInfo | undefined;
/**
* 注册插件间共享方法
* @param name - 共享方法名称
* @param method - 共享方法函数体
*/
register(name: string, method: (...args: any[]) => any, info?: MethodInfo): void;
/**
* 执行插件间共享方法
* @param name - 方法名称
* @param args - 方法参数
* @returns 方法执行结果
*/
invoke<R = any>(name: string, ...args: any): R;
}
export {};