diff --git a/src/core/contracts/moduleManager.ts b/src/core/contracts/moduleManager.ts index b7da765..4db9ce1 100644 --- a/src/core/contracts/moduleManager.ts +++ b/src/core/contracts/moduleManager.ts @@ -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|undefined) => Processed|undefined +export function createModuleGetter(moduleManager: ModuleManager) { + return (accessStrat: (ms: ModuleStore) => Processed|undefined) => { + return moduleManager.get(accessStrat) + } +} + +export function createModuleInserter(moduleManager: ModuleManager) { + return (insertStrat: (ms: ModuleStore) => void) => { + return moduleManager.set(insertStrat) + } +} diff --git a/src/core/module-loading.ts b/src/core/module-loading.ts index 2cfa48c..973e611 100644 --- a/src/core/module-loading.ts +++ b/src/core/module-loading.ts @@ -58,6 +58,7 @@ export function buildModuleStream( export function getCommands(dir: string): string[] { return readPath(join(process.cwd(), dir)); } + export function filename(path: string) { return fmtFileName(basename(path)) } diff --git a/src/core/operators.ts b/src/core/operators.ts index 97477c7..1368fcc 100644 --- a/src/core/operators.ts +++ b/src/core/operators.ts @@ -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 = ({ module, absPath }: ImportPayload) => { + module.description ??= '...' return { absPath, - module: { - name: nameOrFilename(module?.name, absPath), - description: module?.description ?? '...', - ...module, - }, - }; + module + } as ImportPayload>; }; /** diff --git a/src/index.ts b/src/index.ts index 5715d04..91466ec 100644 --- a/src/index.ts +++ b/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' diff --git a/yarn.lock b/yarn.lock index e80b22c..369910b 100644 --- a/yarn.lock +++ b/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: