mirror of
https://github.com/sern-handler/handler
synced 2026-06-06 01:16:55 +00:00
Refactorings
This commit is contained in:
@@ -14,7 +14,6 @@ export function makePlugin<V extends unknown[]>(
|
||||
}
|
||||
/**
|
||||
* @since 2.5.0
|
||||
* @__PURE__
|
||||
*/
|
||||
export function EventInitPlugin<I extends EventType>(
|
||||
execute: (...args: EventArgs<I, PluginType.Init>) => PluginResult,
|
||||
@@ -23,7 +22,6 @@ export function EventInitPlugin<I extends EventType>(
|
||||
}
|
||||
/**
|
||||
* @since 2.5.0
|
||||
* @__PURE__
|
||||
*/
|
||||
export function CommandInitPlugin<I extends CommandType>(
|
||||
execute: (...args: CommandArgs<I, PluginType.Init>) => PluginResult,
|
||||
@@ -32,7 +30,6 @@ export function CommandInitPlugin<I extends CommandType>(
|
||||
}
|
||||
/**
|
||||
* @since 2.5.0
|
||||
* @__PURE__
|
||||
*/
|
||||
export function CommandControlPlugin<I extends CommandType>(
|
||||
execute: (...args: CommandArgs<I, PluginType.Control>) => PluginResult,
|
||||
@@ -41,7 +38,6 @@ export function CommandControlPlugin<I extends CommandType>(
|
||||
}
|
||||
/**
|
||||
* @since 2.5.0
|
||||
* @__PURE__
|
||||
*/
|
||||
export function EventControlPlugin<I extends EventType>(
|
||||
execute: (...args: EventArgs<I, PluginType.Control>) => PluginResult,
|
||||
|
||||
@@ -50,14 +50,12 @@ const createResult = createResultResolver<
|
||||
export function eventDispatcher(module: Processed<Module>, source: unknown) {
|
||||
assert.ok(source instanceof EventEmitter, `${source} is not an EventEmitter`);
|
||||
|
||||
const execute: OperatorFunction<unknown[], unknown> = concatMap(async args =>
|
||||
module.execute(...args),
|
||||
);
|
||||
return fromEvent(source, module.name).pipe(
|
||||
intoPayload(module),
|
||||
concatMap(createResult),
|
||||
execute,
|
||||
);
|
||||
const execute: OperatorFunction<unknown[], unknown> =
|
||||
concatMap(async args => module.execute(...args));
|
||||
return fromEvent(source, module.name)
|
||||
.pipe(intoPayload(module),
|
||||
concatMap(createResult),
|
||||
execute);
|
||||
}
|
||||
|
||||
export function createDispatcher(payload: {
|
||||
|
||||
@@ -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) =>
|
||||
|
||||
@@ -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)));
|
||||
}
|
||||
|
||||
@@ -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)));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user