@atri-bot/core 2.0.0-beta.0 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.d.mts +17 -15
  2. package/package.json +2 -2
package/dist/index.d.mts CHANGED
@@ -149,7 +149,7 @@ declare class Bot {
149
149
  }
150
150
  //#endregion
151
151
  //#region src/plugin.d.ts
152
- interface Plugin<T extends object = object> extends PluginOptions<T> {
152
+ interface PluginRuntime<T extends object = object, Extra extends object = object> {
153
153
  atri: ATRI;
154
154
  bot: ATRI['bot'];
155
155
  ws: ATRI['bot']['ws'];
@@ -157,19 +157,21 @@ interface Plugin<T extends object = object> extends PluginOptions<T> {
157
157
  logger: Logger;
158
158
  refreshConfig: () => Promise<void>;
159
159
  saveConfig: (config?: T) => Promise<void>;
160
- regMessageEvent: <K extends keyof MessageHandler>(this: Plugin<T>, event: Omit<MessageEvent<K>, 'type' | 'pluginName'>) => void;
161
- regCommandEvent: <K extends keyof MessageHandler, U extends Argv>(this: Plugin<T>, event: Omit<CommandEvent<K, U>, 'type' | 'pluginName'>) => void;
162
- regNoticeEvent: <K extends keyof NoticeHandler>(this: Plugin<T>, event: Omit<NoticeEvent<K>, 'type' | 'pluginName'>) => void;
163
- regRequestEvent: <K extends keyof RequestHandler>(this: Plugin<T>, event: Omit<RequestEvent<K>, 'type' | 'pluginName'>) => void;
160
+ regMessageEvent: <K extends keyof MessageHandler>(this: Plugin<T, Extra>, event: Omit<MessageEvent<K>, 'type' | 'pluginName'>) => void;
161
+ regCommandEvent: <K extends keyof MessageHandler, U extends Argv>(this: Plugin<T, Extra>, event: Omit<CommandEvent<K, U>, 'type' | 'pluginName'>) => void;
162
+ regNoticeEvent: <K extends keyof NoticeHandler>(this: Plugin<T, Extra>, event: Omit<NoticeEvent<K>, 'type' | 'pluginName'>) => void;
163
+ regRequestEvent: <K extends keyof RequestHandler>(this: Plugin<T, Extra>, event: Omit<RequestEvent<K>, 'type' | 'pluginName'>) => void;
164
164
  }
165
- interface PluginOptions<T extends object = object> {
165
+ type Plugin<T extends object = object, Extra extends object = object> = PluginRuntime<T, Extra> & PluginOptions<T, Extra>;
166
+ type PluginOptions<T extends object = object, Extra extends object = object> = Extra & {
166
167
  defaultConfig?: T;
167
168
  pluginName: string;
168
- install: (this: Plugin<T>) => MaybePromise<void>;
169
- uninstall: (this: Plugin<T>) => MaybePromise<void>;
170
- }
171
- type definePluginReturnType<T extends object> = (atri: ATRI) => Promise<Plugin<T>>;
172
- declare function definePlugin<T extends object>(_pluginOptions: PluginOptions<T> | (() => MaybePromise<PluginOptions<T>>)): definePluginReturnType<T>;
169
+ install: () => MaybePromise<void>;
170
+ uninstall: () => MaybePromise<void>;
171
+ } & ThisType<Plugin<T, Extra>>;
172
+ type definePluginReturnType<T extends object, Extra extends object = object> = (atri: ATRI) => Promise<Plugin<T, Extra>>;
173
+ declare function definePlugin<T extends object, Extra extends object = object>(_pluginOptions: PluginOptions<T, Extra>): definePluginReturnType<T, Extra>;
174
+ declare function definePlugin<T extends object, Extra extends object = object>(_pluginOptions: () => MaybePromise<PluginOptions<T, Extra>>): definePluginReturnType<T, Extra>;
173
175
  //#endregion
174
176
  //#region src/atri.d.ts
175
177
  interface ATRIConfig {
@@ -179,14 +181,14 @@ interface ATRIConfig {
179
181
  logDir: string;
180
182
  saveLogs: boolean;
181
183
  maxFiles?: number;
182
- plugins?: definePluginReturnType<any>[];
184
+ plugins?: definePluginReturnType<any, any>[];
183
185
  }
184
186
  declare class ATRI {
185
187
  config: ATRIConfig;
186
188
  logger: Logger;
187
189
  bot: Bot;
188
190
  plugins: {
189
- [key: string]: Plugin<any>;
191
+ [key: string]: Plugin<any, any>;
190
192
  };
191
193
  configs: {
192
194
  [key: string]: any;
@@ -195,10 +197,10 @@ declare class ATRI {
195
197
  private removeUselessLogs;
196
198
  constructor(config: ATRIConfig);
197
199
  init(): Promise<void>;
198
- installPlugin<T extends object>(plugin: definePluginReturnType<T>): Promise<void>;
200
+ installPlugin<T extends object, Extra extends object>(plugin: definePluginReturnType<T, Extra>): Promise<void>;
199
201
  uninstallPlugin(pluginName: string): Promise<void>;
200
202
  loadConfig<T extends object>(pluginName: string, defaultConfig?: T, refresh?: boolean): Promise<T>;
201
203
  saveConfig<T extends object>(pluginName: string, config: T): Promise<void>;
202
204
  }
203
205
  //#endregion
204
- export { ATRI, ATRIConfig, Bot, BotConfig, BotEvents, CommandContext, CommandEvent, MaybePromise, MessageEvent, NonEmptyArray, NoticeEvent, Plugin, PluginOptions, RegEventOptions, RequestEvent, definePlugin, definePluginReturnType, sortObjectArray };
206
+ export { ATRI, ATRIConfig, Bot, BotConfig, BotEvents, CommandContext, CommandEvent, MaybePromise, MessageEvent, NonEmptyArray, NoticeEvent, Plugin, PluginOptions, PluginRuntime, RegEventOptions, RequestEvent, definePlugin, definePluginReturnType, sortObjectArray };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@atri-bot/core",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.0",
4
+ "version": "2.0.0-beta.2",
5
5
  "description": "QQBOT TypeScript framework",
6
6
  "author": "huankong233",
7
7
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  "url": "git+https://github.com/HkTeamX/ATRI.git"
11
11
  },
12
12
  "main": "./dist/index.mjs",
13
- "types": "./dist/index.d.ts",
13
+ "types": "./dist/index.d.mts",
14
14
  "files": [
15
15
  "./dist/**/*"
16
16
  ],