diff --git a/src/core/structures/default-services.ts b/src/core/structures/default-services.ts index 06b403d..474a6e4 100644 --- a/src/core/structures/default-services.ts +++ b/src/core/structures/default-services.ts @@ -24,7 +24,7 @@ export class DefaultErrorHandling implements ErrorHandling { * Version 4.0.0 will internalize this api. Please refrain from using ModuleStore! */ export class DefaultLogging implements Logging { - private date = () => new Date(); + private date() { return new Date() } debug(payload: LogPayload): void { console.debug(`DEBUG: ${this.date().toISOString()} -> ${payload.message}`); } diff --git a/src/handlers/event-utils.ts b/src/handlers/event-utils.ts index 474b648..e8e3621 100644 --- a/src/handlers/event-utils.ts +++ b/src/handlers/event-utils.ts @@ -55,8 +55,7 @@ export function eventDispatcher(deps: Dependencies, module: Module, source: unkn `${source} cannot be constructed into an event listener`); const execute: OperatorFunction = concatMap(async args => { - if(args) - return module.execute.apply(null, args); + if(args) return module.execute.apply(null, args); }); //@ts-ignore return fromEvent(source, module.name!) @@ -240,7 +239,7 @@ async function callPlugins({ args, module, deps }: ExecutePayload) { export function intoTask(onStop: (m: Module) => unknown) { const onNext = ({ args, module, deps }: ExecutePayload, state: Record) => ({ module, - args: [...args, { state }], + args: [...args, { state, deps }], deps }); return createResultResolver({ onStop, onNext }) diff --git a/src/handlers/message.ts b/src/handlers/message.ts index dc22fd5..6863f74 100644 --- a/src/handlers/message.ts +++ b/src/handlers/message.ts @@ -20,13 +20,13 @@ function hasPrefix(prefix: string, content: string) { return (prefixInContent.localeCompare(prefix, undefined, { sensitivity: 'accent' }) === 0); } -export default function message( +export default function ( deps: UnpackedDependencies, - defaultPrefix: string | undefined + defaultPrefix?: string ) { const {"@sern/emitter": emitter, '@sern/logger': log, - '@sern/client': client } = deps + '@sern/client': client} = deps if (!defaultPrefix) { log?.debug({ message: 'No prefix found. message handler shutting down' }); diff --git a/src/types/core-modules.ts b/src/types/core-modules.ts index e1fbebb..c09f89f 100644 --- a/src/types/core-modules.ts +++ b/src/types/core-modules.ts @@ -21,7 +21,8 @@ import { AnyCommandPlugin, AnyEventPlugin, ControlPlugin, InitPlugin } from './c import { Awaitable, SernEventsMapping } from './utility'; type ToBeDecided = { - result: Record; + state: Record; + deps: Dependencies } export type Processed = T & { name: string; description: string }; @@ -62,12 +63,12 @@ export interface CronEventCommand extends Module { export interface ContextMenuUser extends Module { type: CommandType.CtxUser; - execute: (ctx: UserContextMenuCommandInteraction) => Awaitable; + execute: (ctx: UserContextMenuCommandInteraction, tbd: ToBeDecided) => Awaitable; } export interface ContextMenuMsg extends Module { type: CommandType.CtxMsg; - execute: (ctx: MessageContextMenuCommandInteraction) => Awaitable; + execute: (ctx: MessageContextMenuCommandInteraction, tbd: ToBeDecided) => Awaitable; } export interface ButtonCommand extends Module { @@ -118,21 +119,21 @@ export interface DiscordEventCommand Awaitable; + execute: (ctx: Context, tbd: ToBeDecided) => Awaitable; } export interface SlashCommand extends Module { type: CommandType.Slash; description: string; options?: SernOptionsData[]; - execute: (ctx: Context) => Awaitable; + execute: (ctx: Context, tbd: ToBeDecided) => Awaitable; } export interface BothCommand extends Module { type: CommandType.Both; description: string; options?: SernOptionsData[]; - execute: (ctx: Context) => Awaitable; + execute: (ctx: Context, tbd: ToBeDecided) => Awaitable; } export type EventModule = DiscordEventCommand | SernEventCommand | ExternalEventCommand | CronEventCommand;