refactor: move and update things

This commit is contained in:
Jacob Nguyen
2023-05-03 21:02:51 -05:00
parent b7a13d6558
commit cae1f648f0
5 changed files with 100 additions and 76 deletions

View File

@@ -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)
}
}

View File

@@ -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))
}

View File

@@ -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>>;
};
/**

View File

@@ -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
View File

@@ -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: