Commit 9cd28c80 authored by nanahira's avatar nanahira

Put everything in BasePlugin public

parent 2d7c1d5a
...@@ -33,7 +33,7 @@ export type PartialDeep<T> = T extends ...@@ -33,7 +33,7 @@ export type PartialDeep<T> = T extends
}; };
export class BasePlugin<C, PC = PartialDeep<C>> { export class BasePlugin<C, PC = PartialDeep<C>> {
constructor(protected ctx: Context, config: PC) {} constructor(public ctx: Context, config: PC) {}
@InjectConfig() @InjectConfig()
config: C; config: C;
......
import { ClonePlugin } from './utility/clone-plugin'; import { ClonePlugin } from './utility/clone-plugin';
import { Context } from 'koishi'; import { Context } from 'koishi';
import { PartialDeep } from './base-plugin'; import { BasePlugin, PartialDeep } from './base-plugin';
import { ClassPluginConfig, MultiPluginConfig, TypeFromClass } from './def'; import { ClassPluginConfig, MultiPluginConfig, TypeFromClass } from './def';
import { ClassType } from 'schemastery-gen'; import { ClassType } from 'schemastery-gen';
import { ToInstancesConfig } from './utility/to-instance-config'; import { ToInstancesConfig } from './utility/to-instance-config';
import Schema from 'schemastery'; import Schema from 'schemastery';
import { InjectConfig, PluginSchema, UsingService } from './decorators'; import { PluginSchema, UsingService } from './decorators';
import { UseEvent } from 'koishi-decorators'; import { UseEvent } from 'koishi-decorators';
export class MultiInstancePluginFramework< export class MultiInstancePluginFramework<
InnerPlugin extends new (ctx: Context, config: any) => any, InnerPlugin extends new (ctx: Context, config: any) => any,
OuterConfig, OuterConfig,
> extends BasePlugin<
MultiPluginConfig<ClassPluginConfig<InnerPlugin>, OuterConfig>,
MultiPluginConfig<ClassPluginConfig<InnerPlugin>, PartialDeep<OuterConfig>>
> { > {
constructor(
public ctx: Context,
config: MultiPluginConfig<
ClassPluginConfig<InnerPlugin>,
PartialDeep<OuterConfig>
>,
) {}
@InjectConfig()
config: MultiPluginConfig<ClassPluginConfig<InnerPlugin>, OuterConfig>;
instances: TypeFromClass<InnerPlugin>[] = []; instances: TypeFromClass<InnerPlugin>[] = [];
_getInnerPlugin(): InnerPlugin { _getInnerPlugin(): InnerPlugin {
......
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