UNPKG

takin

Version:

Front end engineering base toolchain and scaffold

52 lines (51 loc) 1.36 kB
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 {};