Commit 845841a5 authored by nanahira's avatar nanahira

update PluginDef type

parent f741a5b0
...@@ -20,31 +20,24 @@ export interface ContextSelector { ...@@ -20,31 +20,24 @@ export interface ContextSelector {
useSelector?: OnContextFunction; useSelector?: OnContextFunction;
} }
export type KoishiPluginOptions<T extends keyof Modules | Plugin> = export type KoishiPluginOptions<T extends Plugin> = boolean | Plugin.Config<T>;
| boolean
| (T extends keyof Modules
? Plugin.ModuleConfig<Modules[T]>
: T extends Plugin
? Plugin.Config<T>
: never);
export interface KoishiModulePlugin<T extends keyof Modules | Plugin> export interface KoishiModulePlugin<T extends Plugin> extends ContextSelector {
extends ContextSelector { plugin: T | string;
plugin: T; options?: boolean | KoishiPluginOptions<T> | any;
options?: boolean | KoishiPluginOptions<T>;
} }
export function PluginDef<T extends keyof Modules>( export function PluginDef<T extends keyof Plugin>(
plugin: T, name: string,
options?: boolean | Plugin.ModuleConfig<Modules[T]>, options?: any,
select?: Selection, select?: Selection,
): KoishiModulePlugin<T>; );
export function PluginDef<T extends Plugin>( export function PluginDef<T extends Plugin>(
plugin: T, plugin: T,
options?: boolean | Plugin.Config<T>, options?: KoishiModulePlugin<T>,
select?: Selection, select?: Selection,
): KoishiModulePlugin<T>; );
export function PluginDef<T extends keyof Modules | Plugin>( export function PluginDef<T extends keyof Plugin>(
plugin: T, plugin: T,
options?: KoishiPluginOptions<T>, options?: KoishiPluginOptions<T>,
select?: Selection, select?: Selection,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment