UNPKG

@realsee/dnalogel

Version:
24 lines (23 loc) 1.1 kB
import * as BasePlugin from './BasePlugin'; type State = BasePlugin.State; type Config = BasePlugin.Config; interface EventMap<PluginState, PluginData> extends BasePlugin.EventMap<PluginState> { /** 数据变更 */ dataChange: (data: PluginData, prevData?: PluginData) => void; /** 数据加载完成 */ dataLoaded: (data: PluginData) => void; } declare abstract class Controller<PluginState extends State, PluginEventMap extends EventMap<PluginState, PluginData>, PluginServerData, PluginData> extends BasePlugin.Controller<PluginState, PluginEventMap> { protected abstract data?: PluginData; /** * 加载插件依赖数据 * @param serverData 插件数据 * @param state 插件 State */ abstract load(serverData: PluginServerData, state?: PluginState, userAction?: boolean): Promise<void>; /** 把原始数据转化为插件数据 */ protected abstract formatData?(serverData: PluginServerData): Promise<PluginData> | PluginData; } export type { State, EventMap, Config }; export type { BaseOptions } from './BasePlugin'; export { Controller };