Commit 019ed62e authored by nanahira's avatar nanahira

use ConfigLike

parent 5f982606
Pipeline #6292 passed with stages
in 1 minute and 1 second
...@@ -5,3 +5,5 @@ export class MyPluginConfig { ...@@ -5,3 +5,5 @@ export class MyPluginConfig {
@DefineSchema({ desc: '命令名', default: 'cmd' }) @DefineSchema({ desc: '命令名', default: 'cmd' })
commandName: string; commandName: string;
} }
export type MyPluginConfigLike = Partial<MyPluginConfig>;
import 'source-map-support/register'; import 'source-map-support/register';
import { Context } from 'koishi'; import { Context } from 'koishi';
import { MyPlugin } from './plugin'; import { MyPlugin } from './plugin';
import { MyPluginConfig } from './config'; import { MyPluginConfigLike } from './config';
export { MyPluginConfig } from './config'; export { MyPluginConfig } from './config';
export const name = 'myplugin'; export const name = 'myplugin';
const plugin = new MyPlugin(); const plugin = new MyPlugin();
export const schema = plugin.schema; export const schema = plugin.schema;
export function apply(ctx: Context, config: Partial<MyPluginConfig>) { export function apply(ctx: Context, config: Partial<MyPluginConfigLike>) {
ctx.plugin(plugin, config); ctx.plugin(plugin, config);
} }
import 'source-map-support/register'; import 'source-map-support/register';
import { Context, Schema } from 'koishi'; import { Context, Schema } from 'koishi';
import { MyPluginConfig } from './config'; import { MyPluginConfig, MyPluginConfigLike } from './config';
import { schemaFromClass, schemaTransform } from 'koishi-utils-schemagen'; import { schemaFromClass, schemaTransform } from 'koishi-utils-schemagen';
export class MyPlugin { export class MyPlugin {
private config: MyPluginConfig; private config: MyPluginConfig;
private ctx: Context; private ctx: Context;
name = 'myplugin-main'; name = 'myplugin-main';
schema: Schema<MyPluginConfig> = schemaFromClass(MyPluginConfig); schema: Schema<MyPluginConfigLike> = schemaFromClass(MyPluginConfig);
apply(ctx: Context, config: Partial<MyPluginConfig>) { apply(ctx: Context, config: MyPluginConfigLike) {
this.ctx = ctx; this.ctx = ctx;
this.config = schemaTransform(MyPluginConfig, config); this.config = schemaTransform(MyPluginConfig, config);
} }
......
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