File tree Expand file tree Collapse file tree 2 files changed +10
-9
lines changed Expand file tree Collapse file tree 2 files changed +10
-9
lines changed Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ export function commandModule(mod: InputCommand): Module {
26
26
* The wrapper function to define event modules for sern
27
27
* @param mod
28
28
*/
29
- export function eventModule ( mod : InputEvent ) : Module {
29
+ export function eventModule < T extends keyof ClientEvents = keyof ClientEvents > ( mod : InputEvent < T > ) : Module {
30
30
const [ onEvent , plugins ] = partitionPlugins ( mod . plugins ) ;
31
31
if ( onEvent . length !== 0 ) throw Error ( "Event modules cannot have ControlPlugins" ) ;
32
32
return { ...mod ,
@@ -35,8 +35,9 @@ export function eventModule(mod: InputEvent): Module {
35
35
}
36
36
37
37
/** Create event modules from discord.js client events,
38
- * This is an {@link eventModule} for discord events,
39
- * where typings can be very bad.
38
+ * This was an {@link eventModule} for discord events,
39
+ * where typings were bad.
40
+ * @deprecated Use {@link eventModule} instead
40
41
* @param mod
41
42
*/
42
43
export function discordEvent < T extends keyof ClientEvents > ( mod : {
Original file line number Diff line number Diff line change @@ -167,9 +167,9 @@ export interface CommandModuleDefs {
167
167
[ CommandType . Modal ] : ModalSubmitCommand ;
168
168
}
169
169
170
- export interface EventModuleDefs {
170
+ export interface EventModuleDefs < T extends keyof ClientEvents = keyof ClientEvents > {
171
171
[ EventType . Sern ] : SernEventCommand ;
172
- [ EventType . Discord ] : DiscordEventCommand ;
172
+ [ EventType . Discord ] : DiscordEventCommand < T > ;
173
173
[ EventType . External ] : ExternalEventCommand ;
174
174
}
175
175
@@ -186,12 +186,12 @@ export interface SernAutocompleteData
186
186
type CommandModuleNoPlugins = {
187
187
[ T in CommandType ] : Omit < CommandModuleDefs [ T ] , 'plugins' | 'onEvent' | 'meta' | 'locals' > ;
188
188
} ;
189
- type EventModulesNoPlugins = {
190
- [ T in EventType ] : Omit < EventModuleDefs [ T ] , 'plugins' | 'onEvent' | 'meta' | 'locals' > ;
189
+ type EventModulesNoPlugins < K extends keyof ClientEvents = keyof ClientEvents > = {
190
+ [ T in EventType ] : Omit < EventModuleDefs < K > [ T ] , 'plugins' | 'onEvent' | 'meta' | 'locals' > ;
191
191
} ;
192
192
193
- export type InputEvent = {
194
- [ T in EventType ] : EventModulesNoPlugins [ T ] & {
193
+ export type InputEvent < K extends keyof ClientEvents = keyof ClientEvents > = {
194
+ [ T in EventType ] : EventModulesNoPlugins < K > [ T ] & {
195
195
once ?: boolean ;
196
196
plugins ?: InitPlugin [ ]
197
197
} ;
You can’t perform that action at this time.
0 commit comments