mirror of
https://github.com/sern-handler/handler
synced 2026-06-27 18:22:14 +00:00
* step 1 * Refactorings * command modules do not depend on anything but itself * tearing it up * Remove module store, manager, and Intializable type * consolidate interfaces in single file * consolidate default services in single file * TEAR IT UP * fix text compile * the end of sern init?? * Presence namespaced types removed * internal namespace * clean up dependencies * fix test * fix circular dependency * still broken but progress * remove barrel for core/structs * reffactor * refactor allat * more refactoring * prototyping linking static handler * cleanup tests, codegen, and importing handler * some refactor * generify partition * for now copy paste new ioc system * removeiti * fdsfD * ensure container is init'd * fix absPath gen * working on bun compat * refactor and clean up and reenter v3 module loading * dsfsd * refactor, add cron types, reinstante module loader * ready handler revamped so much cleaner * fdssdf * refactor deps list * add more tests, polish up ioc * up to speed with event modules * i think cron works * cron works now, poc * ksdjkldsfld * updating ioc api, experimenting with cron * save b4 thunder and lightning * plugin data reduction & args changes * freeze module after plugins, updateModule, and more * simplify plugin args and prepare for reduction among plugins * add deps to plugin calls and execute * plugin system loking better, tbd type * porg * initplugins inject deps, inconspicuos * fix faiklling test * fix initPlugins not reassigning * parsingParams kinda * proper mapping * dynamic customIds * handling customId params working * testing n shi * inlineinignsd * consolidate fmt * once on eventModules * refact,simplf * readd vitest and Asset fn * fix typings * assets fn complete * more intuitive context.options and Asset typings * add init hooks not firing * -file,-updateModule,publish? * fix: ioc deps not created correctly * documentation, add json for Asset * remove asset * ss * finish ioc transition * nvm, now i did * s * update locals api, docs, tests * fix tests * fix up tests and cleanup * fix * Update src/core/functions.ts Co-authored-by: Evo <85353424+EvolutionX-10@users.noreply.github.com> * better documentation * temp fix * namespace presence types again * revising cron modules and better error messages * scheduler ids * more descriptive errors * refactor to not type leak and job cancellation * refactor n better signatures for task scheduler * documentation * fix swap not accepting functions * change task signature --------- Co-authored-by: Evo <85353424+EvolutionX-10@users.noreply.github.com>
135 lines
3.2 KiB
TypeScript
135 lines
3.2 KiB
TypeScript
/**
|
|
* @since 1.0.0
|
|
* A bitfield that discriminates command modules
|
|
* @enum { number }
|
|
* @example
|
|
* ```ts
|
|
* export default commandModule({
|
|
* // highlight-next-line
|
|
* type : CommandType.Text,
|
|
* name : 'a text command'
|
|
* execute(message) {
|
|
* console.log(message.content)
|
|
* }
|
|
* })
|
|
* ```
|
|
*/
|
|
export enum CommandType {
|
|
Text = 1 << 0,
|
|
Slash = 1 << 1,
|
|
Both = 3,
|
|
CtxUser = 1 << 2,
|
|
CtxMsg = 1 << 3,
|
|
Button = 1 << 4,
|
|
StringSelect = 1 << 5,
|
|
Modal = 1 << 6,
|
|
UserSelect = 1 << 7,
|
|
RoleSelect = 1 << 8,
|
|
MentionableSelect = 1 << 9,
|
|
ChannelSelect = 1 << 10,
|
|
}
|
|
|
|
/**
|
|
* A bitfield that discriminates event modules
|
|
* @enum { number }
|
|
* @example
|
|
* ```ts
|
|
* export default eventModule({
|
|
* //highlight-next-line
|
|
* type : EventType.Discord,
|
|
* name : 'guildMemberAdd'
|
|
* execute(member : GuildMember) {
|
|
* console.log(member)
|
|
* }
|
|
* })
|
|
* ```
|
|
*/
|
|
export enum EventType {
|
|
/**
|
|
* The EventType for handling discord events
|
|
*/
|
|
Discord,
|
|
/**
|
|
* The EventType for handling sern events
|
|
*/
|
|
Sern,
|
|
/**
|
|
* The EventType for handling external events.
|
|
* Could be for example, `process` events, database events
|
|
*/
|
|
External,
|
|
}
|
|
|
|
/**
|
|
* A bitfield that discriminates plugins
|
|
* @enum { number }
|
|
* @example
|
|
* ```ts
|
|
* export default function myPlugin() : EventPlugin<CommandType.Text> {
|
|
* //highlight-next-line
|
|
* type : PluginType.Event,
|
|
* execute([ctx, args], controller) {
|
|
* return controller.next();
|
|
* }
|
|
* }
|
|
* ```
|
|
*/
|
|
export enum PluginType {
|
|
/**
|
|
* The PluginType for InitPlugins
|
|
*/
|
|
Init = 1,
|
|
/**
|
|
* The PluginType for EventPlugins
|
|
*/
|
|
Control = 2,
|
|
}
|
|
/**
|
|
* @deprecated - Use strings 'success' | 'failure' | 'warning'
|
|
* @enum { string }
|
|
*/
|
|
export enum PayloadType {
|
|
Success = 'success',
|
|
Failure = 'failure',
|
|
Warning = 'warning',
|
|
}
|
|
|
|
/**
|
|
* @enum { string }
|
|
*/
|
|
export const enum SernError {
|
|
/**
|
|
* Throws when registering an invalid module.
|
|
* This means it is undefined or an invalid command type was provided
|
|
*/
|
|
InvalidModuleType = 'Detected an unknown module type',
|
|
/**
|
|
* Attempted to lookup module in command module store. Nothing was found!
|
|
*/
|
|
UndefinedModule = `A module could not be detected`,
|
|
/**
|
|
* Attempted to lookup module in command module store. Nothing was found!
|
|
*/
|
|
MismatchModule = `A module type mismatched with event emitted!`,
|
|
/**
|
|
* Unsupported interaction at this moment.
|
|
*/
|
|
NotSupportedInteraction = `This interaction is not supported.`,
|
|
/**
|
|
* One plugin called `controller.stop()` (end command execution / loading)
|
|
*/
|
|
PluginFailure = `A plugin failed to call controller.next()`,
|
|
/**
|
|
* A crash that occurs when accessing an invalid property of Context
|
|
*/
|
|
MismatchEvent = `You cannot use message when an interaction fired or vice versa`,
|
|
/**
|
|
* Unsupported feature attempted to access at this time
|
|
*/
|
|
NotSupportedYet = `This feature is not supported yet`,
|
|
/**
|
|
* Required Dependency not found
|
|
*/
|
|
MissingRequired = `@sern/client is required but was not found`,
|
|
}
|