mirror of
https://github.com/sern-handler/handler
synced 2026-06-06 01:16:55 +00:00
refactor: move and update things
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import type { CommandModuleDefs } from '../../types/module';
|
||||
import type { CommandModule, CommandModuleDefs } from '../../types/module';
|
||||
import type { CommandType, ModuleStore } from '../structures';
|
||||
import type { Processed } from '../../types/handler';
|
||||
/**
|
||||
@@ -25,3 +25,16 @@ export class DefaultModuleManager implements ModuleManager {
|
||||
strat(this.moduleStore);
|
||||
}
|
||||
}
|
||||
|
||||
export type ModuleGetter = (accessStrat: (ms: ModuleStore) => Processed<CommandModule>|undefined) => Processed<CommandModule>|undefined
|
||||
export function createModuleGetter(moduleManager: ModuleManager) {
|
||||
return (accessStrat: (ms: ModuleStore) => Processed<CommandModule>|undefined) => {
|
||||
return moduleManager.get(accessStrat)
|
||||
}
|
||||
}
|
||||
|
||||
export function createModuleInserter(moduleManager: ModuleManager) {
|
||||
return (insertStrat: (ms: ModuleStore) => void) => {
|
||||
return moduleManager.set(insertStrat)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@ export function buildModuleStream<T>(
|
||||
export function getCommands(dir: string): string[] {
|
||||
return readPath(join(process.cwd(), dir));
|
||||
}
|
||||
|
||||
export function filename(path: string) {
|
||||
return fmtFileName(basename(path))
|
||||
}
|
||||
|
||||
@@ -6,10 +6,9 @@
|
||||
|
||||
import { concatMap, defaultIfEmpty, EMPTY, every, fromEvent, map, Observable, of, OperatorFunction, pipe, share } from 'rxjs';
|
||||
import type { AnyModule } from '../types/module';
|
||||
import { nameOrFilename } from './utilities/functions';
|
||||
import type { PluginResult, VoidResult } from '../types/plugin';
|
||||
import { Result } from 'ts-results-es';
|
||||
import { ImportPayload } from '../types/handler';
|
||||
import { ImportPayload, Processed } from '../types/handler';
|
||||
import { EventEmitter } from 'node:events';
|
||||
/**
|
||||
* if {src} is true, mapTo V, else ignore
|
||||
@@ -40,14 +39,11 @@ export function callPlugin(args: unknown): OperatorFunction<
|
||||
export const arrayifySource = map(src => (Array.isArray(src) ? (src as unknown[]) : [src]));
|
||||
|
||||
export const fillDefaults = <T extends AnyModule>({ module, absPath }: ImportPayload<T>) => {
|
||||
module.description ??= '...'
|
||||
return {
|
||||
absPath,
|
||||
module: {
|
||||
name: nameOrFilename(module?.name, absPath),
|
||||
description: module?.description ?? '...',
|
||||
...module,
|
||||
},
|
||||
};
|
||||
module
|
||||
} as ImportPayload<Processed<T>>;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
19
src/index.ts
19
src/index.ts
@@ -1,18 +1,9 @@
|
||||
import SernEmitter from './handler/sernEmitter';
|
||||
export {
|
||||
eventModule,
|
||||
commandModule,
|
||||
EventExecutable,
|
||||
CommandExecutable,
|
||||
controller,
|
||||
discordEvent,
|
||||
} from './handler/sern';
|
||||
export { default as SernEmitter } from './core/sernEmitter';
|
||||
export * as Sern from './handler/sern';
|
||||
export * from './types/handler';
|
||||
export * from './types/module';
|
||||
export * from './types/plugin';
|
||||
export * from './handler/structures';
|
||||
export * from './handler/plugins';
|
||||
export * from './handler/contracts';
|
||||
export { SernEmitter };
|
||||
export * from './handler/dependencies';
|
||||
export * from './core'
|
||||
export { controller } from './handler/sern'
|
||||
export { commandModule, eventModule, CommandExecutable, EventExecutable } from './commands'
|
||||
export { default as Context } from './classic/context'
|
||||
|
||||
129
yarn.lock
129
yarn.lock
@@ -5,50 +5,59 @@ __metadata:
|
||||
version: 6
|
||||
cacheKey: 8
|
||||
|
||||
"@discordjs/builders@npm:^1.6.0":
|
||||
version: 1.6.1
|
||||
resolution: "@discordjs/builders@npm:1.6.1"
|
||||
"@discordjs/builders@npm:^1.5.0":
|
||||
version: 1.6.3
|
||||
resolution: "@discordjs/builders@npm:1.6.3"
|
||||
dependencies:
|
||||
"@discordjs/formatters": ^0.3.0
|
||||
"@discordjs/util": ^0.2.0
|
||||
"@sapphire/shapeshift": ^3.8.1
|
||||
discord-api-types: ^0.37.37
|
||||
"@discordjs/formatters": ^0.3.1
|
||||
"@discordjs/util": ^0.3.1
|
||||
"@sapphire/shapeshift": ^3.8.2
|
||||
discord-api-types: ^0.37.41
|
||||
fast-deep-equal: ^3.1.3
|
||||
ts-mixer: ^6.0.3
|
||||
tslib: ^2.5.0
|
||||
checksum: 057b5585d17e6273d99aa4cb356ca845d54785d95c0af05418f30eb933cf0b80043f7941effe7a593142c6817f47b893c5a973dfd95f3db24e0570666781e2d9
|
||||
checksum: 6a0c07fb910d8a6701f58f51f9f85a486c1f608bb7b81656581591b57eb54680db0a7715ac25b4659c115231bfd8c4ff706cc4ccffb4da308ad24233dc6524b3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/collection@npm:^1.5.0":
|
||||
version: 1.5.0
|
||||
resolution: "@discordjs/collection@npm:1.5.0"
|
||||
checksum: 072043743c5e5ef99033f1c227fd92f437a0665b8f0a5bfa26bacc6610963d03b54c45da0e0116ce30e4612efc52b2db0a0827f79091a135409237722db5400a
|
||||
"@discordjs/collection@npm:^1.4.0, @discordjs/collection@npm:^1.5.1":
|
||||
version: 1.5.1
|
||||
resolution: "@discordjs/collection@npm:1.5.1"
|
||||
checksum: 98cc9cff3c7e6f919097b7ffc96f0a13eba2a90265d187b4db5f8cc09b550efd3d9fc952a21d92a08baf7d9e06d0bfa0467e8d0dbccb2d2f8eb0ee124b8b38d4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/formatters@npm:^0.3.0":
|
||||
version: 0.3.0
|
||||
resolution: "@discordjs/formatters@npm:0.3.0"
|
||||
"@discordjs/formatters@npm:^0.2.0":
|
||||
version: 0.2.0
|
||||
resolution: "@discordjs/formatters@npm:0.2.0"
|
||||
dependencies:
|
||||
discord-api-types: ^0.37.37
|
||||
checksum: cdf0d842f268a1b8c072522f58b0c77853e825964acb1e3b189f53d740d0d4ee4ed3b4be177ce4ab30a665bc1e6953348ab0d29b5fd52a0651e74eb63ad4be6d
|
||||
discord-api-types: ^0.37.35
|
||||
checksum: cc721d1904501910288b48ae4c20df5fb1beff78f2463f780463f7fa7efe661bb739e324fb9e8b2c09aded3ce7cfcc2f58cd3793c0d61da96f87c50f666bf998
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/rest@npm:^1.7.0":
|
||||
version: 1.7.0
|
||||
resolution: "@discordjs/rest@npm:1.7.0"
|
||||
"@discordjs/formatters@npm:^0.3.1":
|
||||
version: 0.3.1
|
||||
resolution: "@discordjs/formatters@npm:0.3.1"
|
||||
dependencies:
|
||||
"@discordjs/collection": ^1.5.0
|
||||
"@discordjs/util": ^0.2.0
|
||||
discord-api-types: ^0.37.41
|
||||
checksum: 96355687853a203b280484419cd96a79b79b4b98f0469ec15be073862fb340cbd60ca2ea68f3d4684e17ff0e8c5f04ddcc6dd88188808e01fcbe0e3eea052d6d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/rest@npm:^1.6.0":
|
||||
version: 1.7.1
|
||||
resolution: "@discordjs/rest@npm:1.7.1"
|
||||
dependencies:
|
||||
"@discordjs/collection": ^1.5.1
|
||||
"@discordjs/util": ^0.3.0
|
||||
"@sapphire/async-queue": ^1.5.0
|
||||
"@sapphire/snowflake": ^3.4.0
|
||||
discord-api-types: ^0.37.37
|
||||
file-type: ^18.2.1
|
||||
"@sapphire/snowflake": ^3.4.2
|
||||
discord-api-types: ^0.37.41
|
||||
file-type: ^18.3.0
|
||||
tslib: ^2.5.0
|
||||
undici: ^5.21.0
|
||||
checksum: 5d52ae02b77abafbcd70c650a9760625a7afab37875a7fc85404e1053e12745aeca819747ad4dbbaab78b1df0a33a050b980b1e91ba356c496bb0ea93d32e10f
|
||||
undici: ^5.22.0
|
||||
checksum: 397dca0f2433dcc20c98805427388dd2ab09b906c429185e5d7cfc5057ad7b2a815653482476cffb64b8e1c3628ff254d927796316956d737375be22383c88d7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -59,6 +68,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/util@npm:^0.3.0, @discordjs/util@npm:^0.3.1":
|
||||
version: 0.3.1
|
||||
resolution: "@discordjs/util@npm:0.3.1"
|
||||
checksum: afd53427bc25c84e05cd34d6daf355cab14629a5f340d33528ea18d3a1177e777584bc5847cfcb7711c7387252c34917d749a0b1a91a99d2ce572878208212df
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/android-arm64@npm:0.17.16":
|
||||
version: 0.17.16
|
||||
resolution: "@esbuild/android-arm64@npm:0.17.16"
|
||||
@@ -404,7 +420,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sapphire/shapeshift@npm:^3.8.1":
|
||||
"@sapphire/shapeshift@npm:^3.8.2":
|
||||
version: 3.8.2
|
||||
resolution: "@sapphire/shapeshift@npm:3.8.2"
|
||||
dependencies:
|
||||
@@ -421,6 +437,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sapphire/snowflake@npm:^3.4.2":
|
||||
version: 3.4.2
|
||||
resolution: "@sapphire/snowflake@npm:3.4.2"
|
||||
checksum: 3bcd05608a63f012538aa0a45bc6abe5b19e15979a1012a9b3af1e0901f897e4df83c80d484c87bd1dece1124f5a14a2f86427190b1dca7f116ee34f13c96788
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sern/handler@workspace:.":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@sern/handler@workspace:."
|
||||
@@ -428,7 +451,7 @@ __metadata:
|
||||
"@types/node": ^18.15.11
|
||||
"@typescript-eslint/eslint-plugin": 5.58.0
|
||||
"@typescript-eslint/parser": 5.58.0
|
||||
discord.js: ^14.9.0
|
||||
discord.js: 14.8.0
|
||||
esbuild: ^0.15.2
|
||||
esbuild-ifdef: ^0.2.0
|
||||
eslint: 8.38.0
|
||||
@@ -981,31 +1004,31 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"discord-api-types@npm:^0.37.37":
|
||||
version: 0.37.38
|
||||
resolution: "discord-api-types@npm:0.37.38"
|
||||
checksum: 58972778639234307ae6c0ce5b841a8a3a29c38116aa9f96051e65a88f6bbc4f1df671c5a985712d816764507308f8ebc97b1c98dad8de7bf756e05819db84ca
|
||||
"discord-api-types@npm:^0.37.35, discord-api-types@npm:^0.37.41":
|
||||
version: 0.37.41
|
||||
resolution: "discord-api-types@npm:0.37.41"
|
||||
checksum: e8a2dd28afefe30e20652aa8eac3e15b596e7274740ea54088b3713c2a22f9bc883138d8501fa4defe3c45e895aa87fc580b0ef110a9c9ab8609c67e870948ed
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"discord.js@npm:^14.9.0":
|
||||
version: 14.9.0
|
||||
resolution: "discord.js@npm:14.9.0"
|
||||
"discord.js@npm:14.8.0":
|
||||
version: 14.8.0
|
||||
resolution: "discord.js@npm:14.8.0"
|
||||
dependencies:
|
||||
"@discordjs/builders": ^1.6.0
|
||||
"@discordjs/collection": ^1.5.0
|
||||
"@discordjs/formatters": ^0.3.0
|
||||
"@discordjs/rest": ^1.7.0
|
||||
"@discordjs/builders": ^1.5.0
|
||||
"@discordjs/collection": ^1.4.0
|
||||
"@discordjs/formatters": ^0.2.0
|
||||
"@discordjs/rest": ^1.6.0
|
||||
"@discordjs/util": ^0.2.0
|
||||
"@sapphire/snowflake": ^3.4.0
|
||||
"@types/ws": ^8.5.4
|
||||
discord-api-types: ^0.37.37
|
||||
discord-api-types: ^0.37.35
|
||||
fast-deep-equal: ^3.1.3
|
||||
lodash.snakecase: ^4.1.1
|
||||
tslib: ^2.5.0
|
||||
undici: ^5.21.0
|
||||
ws: ^8.13.0
|
||||
checksum: 34589830f771b238975cbabb82531db78756b1b132b6b296ad845bc93755cfee34e65febb638e1b77e9e68d9ce2362cd4d4057123c37909e1354d670b747cb71
|
||||
undici: ^5.20.0
|
||||
ws: ^8.12.1
|
||||
checksum: 47d20ee2c48cb612edd791e5908af120889cdb277b9e8fff0edd4013ce5a2eb459f7492bd01af59b229ac22966c35f8b1ce45b4668d48cee878b4093d6d48bd3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1554,14 +1577,14 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"file-type@npm:^18.2.1":
|
||||
version: 18.2.1
|
||||
resolution: "file-type@npm:18.2.1"
|
||||
"file-type@npm:^18.3.0":
|
||||
version: 18.3.0
|
||||
resolution: "file-type@npm:18.3.0"
|
||||
dependencies:
|
||||
readable-web-to-node-stream: ^3.0.2
|
||||
strtok3: ^7.0.0
|
||||
token-types: ^5.0.1
|
||||
checksum: bbc9381292e96a72ecd892f9f5e1a9a8d3f9717955841346e55891acfe099135bfa149f7dad51f35ee52b5e7e0a1a02d7375061b2800758011682c2e9d96953e
|
||||
checksum: 7b2a08cc1f8737b65837a83b8077ba4ea624e5de82fa866814e634f03e19695fefd755fac440a6eb81a273601a342b05cee1f70f2bc032be8424d7c7d135eb51
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3032,12 +3055,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici@npm:^5.21.0":
|
||||
version: 5.21.2
|
||||
resolution: "undici@npm:5.21.2"
|
||||
"undici@npm:^5.20.0, undici@npm:^5.22.0":
|
||||
version: 5.22.0
|
||||
resolution: "undici@npm:5.22.0"
|
||||
dependencies:
|
||||
busboy: ^1.6.0
|
||||
checksum: baceaa9e610966631e86ad2869b657556dd465438eed55e8079cec2a306ecbeecfde2d6e37e43baf96a4c59588ebef50476131e96e018dcc0a7f5db7e6a06c85
|
||||
checksum: 8dc55240a60ae7680798df344e8f46ad0f872ed0fa434fb94cc4fd2b5b2f8053bdf11994d15902999d3880f9bf7cd875a2e90883d2702bf0f366dacd9cbf3fc6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -3134,7 +3157,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ws@npm:^8.13.0":
|
||||
"ws@npm:^8.12.1":
|
||||
version: 8.13.0
|
||||
resolution: "ws@npm:8.13.0"
|
||||
peerDependencies:
|
||||
|
||||
Reference in New Issue
Block a user