diff --git a/src/core/create-plugins.ts b/src/core/create-plugins.ts index 7f1b8bf..b8d6192 100644 --- a/src/core/create-plugins.ts +++ b/src/core/create-plugins.ts @@ -14,7 +14,6 @@ export function makePlugin( } /** * @since 2.5.0 - * @__PURE__ */ export function EventInitPlugin( execute: (...args: EventArgs) => PluginResult, @@ -23,7 +22,6 @@ export function EventInitPlugin( } /** * @since 2.5.0 - * @__PURE__ */ export function CommandInitPlugin( execute: (...args: CommandArgs) => PluginResult, @@ -32,7 +30,6 @@ export function CommandInitPlugin( } /** * @since 2.5.0 - * @__PURE__ */ export function CommandControlPlugin( execute: (...args: CommandArgs) => PluginResult, @@ -41,7 +38,6 @@ export function CommandControlPlugin( } /** * @since 2.5.0 - * @__PURE__ */ export function EventControlPlugin( execute: (...args: EventArgs) => PluginResult, diff --git a/src/handlers/dispatchers.ts b/src/handlers/dispatchers.ts index 8e4eb10..b9b1b6a 100644 --- a/src/handlers/dispatchers.ts +++ b/src/handlers/dispatchers.ts @@ -50,14 +50,12 @@ const createResult = createResultResolver< export function eventDispatcher(module: Processed, source: unknown) { assert.ok(source instanceof EventEmitter, `${source} is not an EventEmitter`); - const execute: OperatorFunction = concatMap(async args => - module.execute(...args), - ); - return fromEvent(source, module.name).pipe( - intoPayload(module), - concatMap(createResult), - execute, - ); + const execute: OperatorFunction = + concatMap(async args => module.execute(...args)); + return fromEvent(source, module.name) + .pipe(intoPayload(module), + concatMap(createResult), + execute); } export function createDispatcher(payload: { diff --git a/src/handlers/event-utils.ts b/src/handlers/event-utils.ts index fc7a16c..08e1e6b 100644 --- a/src/handlers/event-utils.ts +++ b/src/handlers/event-utils.ts @@ -169,7 +169,6 @@ export function executeModule( } - /** * A higher order function that * - creates a stream of {@link VoidResult} { config.createStream } @@ -235,15 +234,13 @@ export function makeModuleExecutor< module, args }); - return concatMap( - createResultResolver({ + return createResultResolver({ onStop, createStream: ({ args, module }) => from(module.onEvent) .pipe(callPlugin(args)), onNext, - }), - ); + }) } export const handleCrash = (err: ErrorHandling,sernemitter: Emitter, log?: Logging) => diff --git a/src/handlers/interaction-event.ts b/src/handlers/interaction-event.ts index 0652341..e9ec3fe 100644 --- a/src/handlers/interaction-event.ts +++ b/src/handlers/interaction-event.ts @@ -1,5 +1,5 @@ import { Interaction } from 'discord.js'; -import { mergeMap, merge } from 'rxjs'; +import { mergeMap, merge, concatMap } from 'rxjs'; import { PayloadType } from '../core'; import { isAutocomplete, @@ -27,7 +27,7 @@ export function interactionHandler([emitter, err, log, modules, client]: Depende return interactionHandler$ .pipe( filterTap(e => emitter.emit('warning', resultPayload(PayloadType.Warning, undefined, e))), - makeModuleExecutor(module => - emitter.emit('module.activate', resultPayload(PayloadType.Failure, module, SernError.PluginFailure))), + concatMap(makeModuleExecutor(module => + emitter.emit('module.activate', resultPayload(PayloadType.Failure, module, SernError.PluginFailure)))), mergeMap(payload => executeModule(emitter, log, err, payload))); } diff --git a/src/handlers/message-event.ts b/src/handlers/message-event.ts index 86b1446..a1c1a69 100644 --- a/src/handlers/message-event.ts +++ b/src/handlers/message-event.ts @@ -1,4 +1,4 @@ -import { mergeMap, EMPTY } from 'rxjs'; +import { mergeMap, EMPTY, concatMap } from 'rxjs'; import type { Message } from 'discord.js'; import { PayloadType } from '../core'; import { sharedEventStream, SernError, filterTap, resultPayload } from '../core/_internal'; @@ -39,9 +39,9 @@ export function messageHandler( return msgCommands$.pipe( filterTap((e) => emitter.emit('warning', resultPayload(PayloadType.Warning, undefined, e))), - makeModuleExecutor(module => { + concatMap(makeModuleExecutor(module => { const result = resultPayload(PayloadType.Failure, module, SernError.PluginFailure); emitter.emit('module.activate', result); - }), + })), mergeMap(payload => executeModule(emitter, log, err, payload))); }