reciple 9.4.1 → 9.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -13
- package/dist/bin.js +2 -132
- package/dist/bin.js.map +1 -1
- package/dist/classes/CLI.d.ts +54 -0
- package/dist/classes/CLI.js +188 -0
- package/dist/classes/CLI.js.map +1 -0
- package/dist/classes/Config.d.ts +28 -51
- package/dist/classes/Config.js +54 -56
- package/dist/classes/Config.js.map +1 -1
- package/dist/classes/EventHandlers.d.ts +9 -0
- package/dist/classes/EventHandlers.js +71 -0
- package/dist/classes/EventHandlers.js.map +1 -0
- package/dist/classes/ModuleLoader.d.ts +25 -0
- package/dist/classes/ModuleLoader.js +95 -0
- package/dist/classes/ModuleLoader.js.map +1 -0
- package/dist/commands/dev.d.ts +12 -0
- package/dist/commands/dev.js +140 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.js +10 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/shard.d.ts +9 -0
- package/dist/commands/shard.js +101 -0
- package/dist/commands/shard.js.map +1 -0
- package/dist/commands/start.d.ts +9 -0
- package/dist/commands/start.js +94 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/exports.d.ts +5 -9
- package/dist/exports.js +5 -3
- package/dist/exports.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/types/constants.d.ts +6 -0
- package/dist/types/constants.js +29 -0
- package/dist/types/constants.js.map +1 -0
- package/dist/types/structures.d.ts +36 -0
- package/dist/types/structures.js +2 -0
- package/dist/types/structures.js.map +1 -0
- package/package.json +8 -5
- package/static/config.d.mts +3 -1
- package/static/config.mjs +18 -0
- package/dist/utils/cli.d.ts +0 -60
- package/dist/utils/cli.js +0 -80
- package/dist/utils/cli.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -31
- package/dist/utils/logger.js +0 -87
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/modules.d.ts +0 -10
- package/dist/utils/modules.js +0 -44
- package/dist/utils/modules.js.map +0 -1
package/README.md
CHANGED
|
@@ -50,23 +50,21 @@ After that configure the template you want to use. [Learn More](https://reciple.
|
|
|
50
50
|
## CLI usage
|
|
51
51
|
|
|
52
52
|
```yml
|
|
53
|
-
Usage: reciple [options] [
|
|
53
|
+
Usage: reciple [options] [command]
|
|
54
54
|
|
|
55
55
|
Reciple is a Discord.js bot framework
|
|
56
56
|
|
|
57
|
-
Arguments:
|
|
58
|
-
cwd Change the current working directory
|
|
59
|
-
|
|
60
57
|
Options:
|
|
61
|
-
-v, --version
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
58
|
+
-v, --version output the version number
|
|
59
|
+
--env <file> Set .env file path (default: [".env"])
|
|
60
|
+
--debug Enable debug mode (default: false)
|
|
61
|
+
--cwd <dir> Set current working directory (default: "./")
|
|
62
|
+
-h, --help display help for command
|
|
63
|
+
|
|
64
|
+
Commands:
|
|
65
|
+
shard [options] Starts in sharding mode
|
|
66
|
+
start [options] Starts the bot
|
|
67
|
+
help [command] display help for command
|
|
70
68
|
```
|
|
71
69
|
|
|
72
70
|
## Message Commands
|
package/dist/bin.js
CHANGED
|
@@ -1,134 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { RecipleClient, findModules } from './index.js';
|
|
5
|
-
import { command, cli, cliVersion, updateChecker } from './utils/cli.js';
|
|
6
|
-
import { setTimeout as setTimeoutAsync } from 'node:timers/promises';
|
|
7
|
-
import { existsAsync, resolveEnvProtocol } from '@reciple/utils';
|
|
8
|
-
import { parentPort, threadId } from 'node:worker_threads';
|
|
9
|
-
import { ConfigReader } from './classes/Config.js';
|
|
10
|
-
import { config as loadEnv } from 'dotenv';
|
|
11
|
-
import { mkdir } from 'node:fs/promises';
|
|
12
|
-
import { kleur } from 'fallout-utility';
|
|
13
|
-
import path from 'node:path';
|
|
14
|
-
import semver from 'semver';
|
|
15
|
-
command.parse();
|
|
16
|
-
if (!await existsAsync(cli.cwd))
|
|
17
|
-
await mkdir(cli.cwd, { recursive: true });
|
|
18
|
-
if (cli.cwd !== cli.nodeCwd || parentPort === null) {
|
|
19
|
-
process.chdir(cli.cwd);
|
|
20
|
-
cli.isCwdUpdated = true;
|
|
21
|
-
}
|
|
22
|
-
loadEnv({ path: cli.options.env });
|
|
23
|
-
let configPaths = [path.resolve('./reciple.mjs'), path.resolve('./reciple.js')];
|
|
24
|
-
const configPath = path.resolve(cli.options.config ?? 'reciple.mjs');
|
|
25
|
-
const isCustomPath = !configPaths.includes(configPath) || !!cli.options.config;
|
|
26
|
-
if (!isCustomPath) {
|
|
27
|
-
configPaths = configPaths.filter(p => p !== configPath);
|
|
28
|
-
configPaths.unshift(configPath);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
configPaths = [configPath];
|
|
32
|
-
}
|
|
33
|
-
const config = await ConfigReader.readConfigJS({ paths: configPaths }).then(c => c.config);
|
|
34
|
-
const logger = config.logger instanceof Logger
|
|
35
|
-
? config.logger
|
|
36
|
-
: config.logger?.enabled
|
|
37
|
-
? await createLogger(config.logger)
|
|
38
|
-
: null;
|
|
39
|
-
global.logger = logger ?? undefined;
|
|
40
|
-
if (cli.options.setup)
|
|
41
|
-
process.exit(0);
|
|
42
|
-
if (cli.shardmode)
|
|
43
|
-
config.applicationCommandRegister = { ...config.applicationCommandRegister, enabled: false };
|
|
44
|
-
if (cli.options.token)
|
|
45
|
-
config.token = resolveEnvProtocol(cli.options.token) ?? config.token;
|
|
46
|
-
const processErrorHandler = (err) => logger?.error(err);
|
|
47
|
-
process.once('uncaughtException', processErrorHandler);
|
|
48
|
-
process.once('unhandledRejection', processErrorHandler);
|
|
49
|
-
process.on('warning', warn => logger?.warn(warn));
|
|
50
|
-
if (cli.shardmode) {
|
|
51
|
-
const message = { type: 'ProcessInfo', pid: process.pid, threadId, log: cli.logPath };
|
|
52
|
-
if (parentPort)
|
|
53
|
-
parentPort.postMessage(message);
|
|
54
|
-
if (process.send)
|
|
55
|
-
process.send(message);
|
|
56
|
-
}
|
|
57
|
-
if (config.version && !semver.satisfies(cliVersion, config.version)) {
|
|
58
|
-
logger?.error(`Your config version doesn't support Reciple CLI v${cliVersion}`);
|
|
59
|
-
process.exit(1);
|
|
60
|
-
}
|
|
61
|
-
logger?.info(`Starting Reciple client v${buildVersion} - ${new Date()}`);
|
|
62
|
-
const client = new RecipleClient(config);
|
|
63
|
-
global.reciple = client;
|
|
64
|
-
client.setLogger(logger);
|
|
65
|
-
addEventListenersToClient(client);
|
|
66
|
-
const moduleFilesFilter = (file) => file.endsWith('.js') || file.endsWith('.cjs') || file.endsWith('.mjs');
|
|
67
|
-
const modules = await client.modules.resolveModuleFiles({
|
|
68
|
-
files: await findModules(config.modules, (f) => moduleFilesFilter(f)),
|
|
69
|
-
disableVersionCheck: config.modules?.disableModuleVersionCheck
|
|
70
|
-
});
|
|
71
|
-
const startedModules = await client.modules.startModules();
|
|
72
|
-
const failedToStartModules = modules.length - startedModules.length;
|
|
73
|
-
if (failedToStartModules > 0)
|
|
74
|
-
logger?.warn(`Failed to load (${failedToStartModules}) modules.`);
|
|
75
|
-
client.once('ready', async () => {
|
|
76
|
-
if (!client.isReady())
|
|
77
|
-
return;
|
|
78
|
-
logger?.debug(`Client is ready!`);
|
|
79
|
-
process.removeListener('uncaughtException', processErrorHandler);
|
|
80
|
-
process.removeListener('unhandledRejection', processErrorHandler);
|
|
81
|
-
const loadedModules = await client.modules.loadModules({ cacheCommands: true });
|
|
82
|
-
const failedToLoadModules = startedModules.length - loadedModules.length;
|
|
83
|
-
if (failedToLoadModules > 0)
|
|
84
|
-
logger?.warn(`Failed to load (${failedToLoadModules}) modules.`);
|
|
85
|
-
let stopping = false;
|
|
86
|
-
const unloadModulesAndStopProcess = async (signal) => {
|
|
87
|
-
if (stopping)
|
|
88
|
-
return;
|
|
89
|
-
logger?.debug(`Received exit signal: ${signal}`);
|
|
90
|
-
stopping = true;
|
|
91
|
-
await client.destroy(true);
|
|
92
|
-
const signalString = signal === 'SIGINT' ? 'keyboard interrupt' : signal === 'SIGTERM' ? 'terminate' : String(signal);
|
|
93
|
-
logger?.warn(`Process exited: ${kleur.yellow(signalString)}`);
|
|
94
|
-
logger?.closeWriteStream();
|
|
95
|
-
await setTimeoutAsync(10);
|
|
96
|
-
process.exit(0);
|
|
97
|
-
};
|
|
98
|
-
process.stdin.resume();
|
|
99
|
-
process.once('SIGHUP', unloadModulesAndStopProcess);
|
|
100
|
-
process.once('SIGINT', unloadModulesAndStopProcess);
|
|
101
|
-
process.once('SIGQUIT', unloadModulesAndStopProcess);
|
|
102
|
-
process.once('SIGABRT', unloadModulesAndStopProcess);
|
|
103
|
-
process.once('SIGALRM', unloadModulesAndStopProcess);
|
|
104
|
-
process.once('SIGTERM', unloadModulesAndStopProcess);
|
|
105
|
-
process.once('SIGBREAK', unloadModulesAndStopProcess);
|
|
106
|
-
process.once('SIGUSR2', unloadModulesAndStopProcess);
|
|
107
|
-
client.on('interactionCreate', interaction => {
|
|
108
|
-
if (interaction.isContextMenuCommand()) {
|
|
109
|
-
ContextMenuCommandBuilder.execute({ client, interaction });
|
|
110
|
-
}
|
|
111
|
-
else if (interaction.isChatInputCommand()) {
|
|
112
|
-
SlashCommandBuilder.execute({ client, interaction });
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
client.on('messageCreate', message => {
|
|
116
|
-
MessageCommandBuilder.execute({ client, message });
|
|
117
|
-
});
|
|
118
|
-
if (config.applicationCommandRegister?.enabled !== false)
|
|
119
|
-
await client.commands.registerApplicationCommands();
|
|
120
|
-
logger?.warn(`Logged in as ${kleur.bold().cyan(client.user.tag)} ${kleur.magenta('(' + client.user.id + ')')}`);
|
|
121
|
-
logger?.log(`Loaded ${client.commands.contextMenuCommands.size} context menu command(s)`);
|
|
122
|
-
logger?.log(`Loaded ${client.commands.messageCommands.size} message command(s)`);
|
|
123
|
-
logger?.log(`Loaded ${client.commands.slashCommands.size} slash command(s)`);
|
|
124
|
-
logger?.log(`Loaded ${client.commands.preconditions.size} global command precondition(s)`);
|
|
125
|
-
logger?.log(`Loaded ${client.commands.halts.size} global command halt(s)`);
|
|
126
|
-
if (!config.checkForUpdates)
|
|
127
|
-
return;
|
|
128
|
-
updateChecker.on('updateAvailable', data => logger?.warn(`An update is available for ${kleur.cyan(data.package)}: ${kleur.red(data.currentVersion)} ${kleur.gray('->')} ${kleur.green().bold(data.updatedVersion)}`));
|
|
129
|
-
updateChecker.on('updateError', (pkg, error) => logger?.debug(`An error occured while checking for updates for ${pkg}:`, error));
|
|
130
|
-
updateChecker.startCheckInterval(1000 * 60 * 60);
|
|
131
|
-
});
|
|
132
|
-
logger?.debug(`Logging in...`);
|
|
133
|
-
await client.login().then(() => logger?.debug(`Login successful`));
|
|
2
|
+
import { cli } from './types/constants.js';
|
|
3
|
+
await cli.parse();
|
|
134
4
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type Logger } from '@reciple/core';
|
|
2
|
+
import { PackageUpdateChecker, type PackageUpdateCheckerOptions } from '@reciple/utils';
|
|
3
|
+
import type { Command, OptionValues } from 'commander';
|
|
4
|
+
import { type PackageJson } from 'fallout-utility';
|
|
5
|
+
import type { CLIDefaultFlags } from '../types/structures.js';
|
|
6
|
+
import { type ExecSyncOptions } from 'node:child_process';
|
|
7
|
+
export interface CLIOptions {
|
|
8
|
+
packageJSON: PackageJson;
|
|
9
|
+
processCwd?: string;
|
|
10
|
+
commander: Command;
|
|
11
|
+
binPath: string;
|
|
12
|
+
logger?: Logger;
|
|
13
|
+
updateChecker?: PackageUpdateCheckerOptions | PackageUpdateChecker;
|
|
14
|
+
}
|
|
15
|
+
export declare class CLI implements CLIOptions {
|
|
16
|
+
static root: string;
|
|
17
|
+
static commandsDir: string;
|
|
18
|
+
static get shardMode(): boolean;
|
|
19
|
+
static get shardLogsFolder(): string | null | undefined;
|
|
20
|
+
static get shardDeployCommands(): boolean | null;
|
|
21
|
+
static get threadId(): number | null;
|
|
22
|
+
packageJSON: PackageJson;
|
|
23
|
+
processCwd: string;
|
|
24
|
+
commander: Command;
|
|
25
|
+
binPath: string;
|
|
26
|
+
logger?: Logger;
|
|
27
|
+
logPath?: string;
|
|
28
|
+
updateChecker?: PackageUpdateChecker;
|
|
29
|
+
get name(): string;
|
|
30
|
+
get description(): string;
|
|
31
|
+
get version(): string;
|
|
32
|
+
get args(): string[];
|
|
33
|
+
get flags(): CLIDefaultFlags;
|
|
34
|
+
get cwd(): string;
|
|
35
|
+
get isCwdUpdated(): boolean;
|
|
36
|
+
get threadId(): number | null;
|
|
37
|
+
get shardMode(): boolean;
|
|
38
|
+
get shardLogsFolder(): string | null | undefined;
|
|
39
|
+
get shardDeployCommands(): boolean | null;
|
|
40
|
+
get nodeEnv(): string | undefined;
|
|
41
|
+
constructor(options: CLIOptions);
|
|
42
|
+
parse(): Promise<this>;
|
|
43
|
+
registerSubcommands(dir?: string): Promise<Command>;
|
|
44
|
+
getFlags<Flags extends OptionValues = OptionValues>(command: Command | string, mergeDefault?: false): Flags | undefined;
|
|
45
|
+
getFlags<Flags extends OptionValues = OptionValues>(command: Command | string, mergeDefault: true): Flags & CLIDefaultFlags | undefined;
|
|
46
|
+
getFlags(command?: undefined): CLIDefaultFlags;
|
|
47
|
+
getCommand(name: string): Command | undefined;
|
|
48
|
+
getCommand(name?: undefined): Command;
|
|
49
|
+
sendProcessInfo(): Promise<void>;
|
|
50
|
+
protected preActionHandler(command: Command, action: Command): void;
|
|
51
|
+
static stringifyFlags(flags: OptionValues, command: Command, ignored?: string[]): string[];
|
|
52
|
+
static run(script: string, options?: ExecSyncOptions): string | Buffer;
|
|
53
|
+
static clearConsole(): void;
|
|
54
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { buildVersion } from '@reciple/core';
|
|
2
|
+
import { existsAsync, PackageUpdateChecker, recursiveDefaults } from '@reciple/utils';
|
|
3
|
+
import { isDebugging, kleur } from 'fallout-utility';
|
|
4
|
+
import { mkdir, readdir, stat } from 'node:fs/promises';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { fileURLToPath } from 'node:url';
|
|
7
|
+
import { isMainThread, parentPort, threadId } from 'node:worker_threads';
|
|
8
|
+
import { cli } from '../types/constants.js';
|
|
9
|
+
import { config as loadEnv } from 'dotenv';
|
|
10
|
+
import { execSync } from 'node:child_process';
|
|
11
|
+
export class CLI {
|
|
12
|
+
static root = path.join(path.dirname(fileURLToPath(import.meta.url)), '../../');
|
|
13
|
+
static commandsDir = path.join(CLI.root, './dist/commands');
|
|
14
|
+
static get shardMode() {
|
|
15
|
+
return !!process.env.SHARDS && !!process.env.SHARD_COUNT;
|
|
16
|
+
}
|
|
17
|
+
static get shardLogsFolder() {
|
|
18
|
+
return CLI.shardMode ? process.env.SHARDS_LOGS_FOLDER : null;
|
|
19
|
+
}
|
|
20
|
+
static get shardDeployCommands() {
|
|
21
|
+
return CLI.shardMode ? !!process.env.SHARDS_DEPLOY_COMMANDS : null;
|
|
22
|
+
}
|
|
23
|
+
static get threadId() {
|
|
24
|
+
return (!isMainThread && parentPort !== undefined ? threadId : undefined) ?? null;
|
|
25
|
+
}
|
|
26
|
+
packageJSON;
|
|
27
|
+
processCwd;
|
|
28
|
+
commander;
|
|
29
|
+
binPath;
|
|
30
|
+
logger;
|
|
31
|
+
logPath;
|
|
32
|
+
updateChecker;
|
|
33
|
+
get name() {
|
|
34
|
+
return this.packageJSON.name ?? 'reciple';
|
|
35
|
+
}
|
|
36
|
+
get description() {
|
|
37
|
+
return this.packageJSON.description ?? '';
|
|
38
|
+
}
|
|
39
|
+
get version() {
|
|
40
|
+
return this.packageJSON.version;
|
|
41
|
+
}
|
|
42
|
+
get args() {
|
|
43
|
+
return this.commander.args;
|
|
44
|
+
}
|
|
45
|
+
get flags() {
|
|
46
|
+
return this.commander.opts();
|
|
47
|
+
}
|
|
48
|
+
get cwd() {
|
|
49
|
+
const cwd = this.getFlags().cwd;
|
|
50
|
+
return cwd
|
|
51
|
+
? path.isAbsolute(cwd) ? cwd : path.join(this.processCwd, cwd)
|
|
52
|
+
: this.processCwd;
|
|
53
|
+
}
|
|
54
|
+
get isCwdUpdated() {
|
|
55
|
+
return process.cwd() !== this.processCwd;
|
|
56
|
+
}
|
|
57
|
+
get threadId() {
|
|
58
|
+
return CLI.threadId;
|
|
59
|
+
}
|
|
60
|
+
get shardMode() {
|
|
61
|
+
return CLI.shardMode;
|
|
62
|
+
}
|
|
63
|
+
get shardLogsFolder() {
|
|
64
|
+
return CLI.shardLogsFolder;
|
|
65
|
+
}
|
|
66
|
+
get shardDeployCommands() {
|
|
67
|
+
return CLI.shardDeployCommands;
|
|
68
|
+
}
|
|
69
|
+
get nodeEnv() {
|
|
70
|
+
return process.env.NODE_ENV;
|
|
71
|
+
}
|
|
72
|
+
constructor(options) {
|
|
73
|
+
this.packageJSON = options.packageJSON;
|
|
74
|
+
this.processCwd = options.processCwd ?? process.cwd();
|
|
75
|
+
this.commander = options.commander;
|
|
76
|
+
this.binPath = options.binPath;
|
|
77
|
+
this.logger = options.logger;
|
|
78
|
+
if (options.updateChecker) {
|
|
79
|
+
this.updateChecker = options.updateChecker instanceof PackageUpdateChecker ? options.updateChecker : new PackageUpdateChecker(options.updateChecker);
|
|
80
|
+
}
|
|
81
|
+
this.commander
|
|
82
|
+
.name(this.name)
|
|
83
|
+
.description(this.description)
|
|
84
|
+
.version(`reciple: ${this.version}\n@reciple/client: ${buildVersion}`, '-v, --version')
|
|
85
|
+
.option('--env <file>', 'Set .env file path', (v, p) => p.concat(v), [path.join(this.cwd, '.env')])
|
|
86
|
+
.option('--debug', 'Enable debug mode', isDebugging())
|
|
87
|
+
.option('--production', 'Starts in production mode', false)
|
|
88
|
+
.hook('preAction', (cmd, action) => this.preActionHandler(cmd, action))
|
|
89
|
+
.allowUnknownOption(true);
|
|
90
|
+
if (this.threadId === null)
|
|
91
|
+
this.commander.option('--cwd <dir>', 'Set current working directory', this.processCwd);
|
|
92
|
+
}
|
|
93
|
+
async parse() {
|
|
94
|
+
await this.registerSubcommands();
|
|
95
|
+
if (!await existsAsync(this.cwd))
|
|
96
|
+
await mkdir(this.cwd, { recursive: true });
|
|
97
|
+
const flags = this.getFlags();
|
|
98
|
+
if (flags.debug && this.logger) {
|
|
99
|
+
this.logger.debugmode ??= {};
|
|
100
|
+
this.logger.debugmode.enabled ??= flags.debug;
|
|
101
|
+
this.logger.debugmode.printMessage ??= true;
|
|
102
|
+
}
|
|
103
|
+
this.logger?.debug(`Reciple CLI flags:`, flags);
|
|
104
|
+
if (flags.env.length) {
|
|
105
|
+
this.logger?.debug(`Loading environment variables from:\n ${kleur.cyan(flags.env.join('\n '))}`);
|
|
106
|
+
loadEnv({ path: flags.env });
|
|
107
|
+
}
|
|
108
|
+
this.updateChecker?.on('updateAvailable', data => this.logger?.warn(`An update is available for ${kleur.cyan(data.package)}: ${kleur.red(data.currentVersion)} ${kleur.gray('->')} ${kleur.green().bold(data.updatedVersion)}`));
|
|
109
|
+
this.updateChecker?.on('updateError', (pkg, error) => this.logger?.debug(`An error occured while checking for updates for ${pkg}:`, error));
|
|
110
|
+
this.updateChecker?.startCheckInterval(1000 * 60 * 60);
|
|
111
|
+
await this.commander.parseAsync();
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
async registerSubcommands(dir = CLI.commandsDir) {
|
|
115
|
+
const statData = await stat(dir).catch(() => null);
|
|
116
|
+
if (!statData)
|
|
117
|
+
return this.commander;
|
|
118
|
+
const files = (await readdir(dir))
|
|
119
|
+
.map(f => path.join(dir, f))
|
|
120
|
+
.filter(f => f.endsWith('.js'));
|
|
121
|
+
for (const file of files) {
|
|
122
|
+
const command = recursiveDefaults(await import(path.isAbsolute(file) ? `file://${file}` : file));
|
|
123
|
+
if (!command || typeof command !== 'function')
|
|
124
|
+
continue;
|
|
125
|
+
await Promise.resolve(command(this.commander, this)).catch(() => null);
|
|
126
|
+
}
|
|
127
|
+
return this.commander;
|
|
128
|
+
}
|
|
129
|
+
getFlags(command, mergeDefault = false) {
|
|
130
|
+
if (!command)
|
|
131
|
+
return this.flags;
|
|
132
|
+
command = typeof command === 'string' ? this.commander.commands.find(c => c.name() === command) : command;
|
|
133
|
+
const flags = command?.opts();
|
|
134
|
+
return mergeDefault ? { ...this.flags, ...flags } : flags;
|
|
135
|
+
}
|
|
136
|
+
getCommand(name) {
|
|
137
|
+
if (!name)
|
|
138
|
+
return this.commander;
|
|
139
|
+
return this.commander.commands.find(c => c.name() === name);
|
|
140
|
+
}
|
|
141
|
+
async sendProcessInfo() {
|
|
142
|
+
const message = { type: 'ProcessInfo', pid: process.pid, threadId, log: cli.logPath };
|
|
143
|
+
if (parentPort)
|
|
144
|
+
parentPort.postMessage(message);
|
|
145
|
+
if (process.send)
|
|
146
|
+
process.send(message);
|
|
147
|
+
}
|
|
148
|
+
preActionHandler(command, action) {
|
|
149
|
+
this.logger?.debug(`Running command: ${kleur.cyan(command.name())} ${kleur.gray(kleur.bold(action.name()))}`);
|
|
150
|
+
const flags = this.getFlags();
|
|
151
|
+
if (flags.debug)
|
|
152
|
+
process.env.NODE_ENV = 'development';
|
|
153
|
+
if (flags.production)
|
|
154
|
+
process.env.NODE_ENV = 'production';
|
|
155
|
+
if ((cli.cwd !== cli.processCwd && !cli.isCwdUpdated) || this.threadId === null)
|
|
156
|
+
process.chdir(cli.cwd);
|
|
157
|
+
if (flags.debug && this.logger) {
|
|
158
|
+
this.logger.debugmode = {
|
|
159
|
+
...this.logger?.debugmode,
|
|
160
|
+
enabled: true
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
static stringifyFlags(flags, command, ignored = []) {
|
|
165
|
+
let arr = [];
|
|
166
|
+
for (const [key, value] of Object.entries(flags)) {
|
|
167
|
+
const option = command.options.find(o => o.name() === key || o.attributeName() === key);
|
|
168
|
+
if (!option || ignored.includes(key))
|
|
169
|
+
continue;
|
|
170
|
+
const flag = option.long ?? option.short ?? `--${option.name()}`;
|
|
171
|
+
if (!option.flags.endsWith('>') && !option.flags.endsWith(']') && typeof value === 'boolean') {
|
|
172
|
+
if (value)
|
|
173
|
+
arr.push(flag);
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
arr.push(flag, String(value));
|
|
177
|
+
}
|
|
178
|
+
return arr;
|
|
179
|
+
}
|
|
180
|
+
static run(script, options) {
|
|
181
|
+
return execSync(script, options);
|
|
182
|
+
}
|
|
183
|
+
static clearConsole() {
|
|
184
|
+
process.stdout.write("\u001b[3J\u001b[2J\u001b[1J");
|
|
185
|
+
console.clear();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=CLI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CLI.js","sourceRoot":"","sources":["../../src/classes/CLI.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/Config.d.ts
CHANGED
|
@@ -1,56 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
enabled: boolean;
|
|
6
|
-
debugmode?: boolean | null;
|
|
7
|
-
coloredMessages: boolean;
|
|
8
|
-
disableLogPrefix: boolean;
|
|
9
|
-
logToFile: {
|
|
10
|
-
enabled: boolean;
|
|
11
|
-
logsFolder: string;
|
|
12
|
-
file: string;
|
|
13
|
-
};
|
|
14
|
-
} | Logger;
|
|
15
|
-
modules?: {
|
|
16
|
-
dirs: string[];
|
|
17
|
-
exclude?: string[];
|
|
18
|
-
filter?: (file: string) => Awaitable<boolean>;
|
|
19
|
-
disableModuleVersionCheck?: boolean;
|
|
20
|
-
};
|
|
21
|
-
checkForUpdates?: boolean;
|
|
22
|
-
version?: string;
|
|
23
|
-
}
|
|
1
|
+
import type { RecipleConfig } from '../types/structures.js';
|
|
2
|
+
import { CLI } from './CLI.js';
|
|
3
|
+
import { type LoggerOptions } from '@reciple/core';
|
|
4
|
+
import type { ShardingManagerOptions } from 'discord.js';
|
|
24
5
|
export interface RecipleConfigJS {
|
|
25
6
|
config: RecipleConfig;
|
|
7
|
+
sharding?: Omit<ShardingManagerOptions, 'shardArgs' | 'token' | 'execArgv'>;
|
|
8
|
+
devmode?: {
|
|
9
|
+
watch?: string[];
|
|
10
|
+
ignore?: string[];
|
|
11
|
+
exec?: string[];
|
|
12
|
+
noStart?: boolean;
|
|
13
|
+
killSignal?: NodeJS.Signals;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface ConfigReadOptions {
|
|
17
|
+
path: string;
|
|
18
|
+
createIfNotExists?: boolean;
|
|
26
19
|
}
|
|
27
|
-
export declare class
|
|
20
|
+
export declare class Config {
|
|
21
|
+
private constructor();
|
|
28
22
|
static defaultConfigFile: string;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
static
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
*/
|
|
40
|
-
static getDefaultConfigData(): Promise<string>;
|
|
41
|
-
static readConfigJS(config: string | {
|
|
42
|
-
paths: string[];
|
|
43
|
-
default?: string;
|
|
44
|
-
}, createIfNotExists?: true): Promise<RecipleConfigJS>;
|
|
45
|
-
static readConfigJS(config: string | {
|
|
46
|
-
paths: string[];
|
|
47
|
-
default?: string;
|
|
48
|
-
}, createIfNotExists?: false): Promise<RecipleConfigJS | null>;
|
|
49
|
-
/**
|
|
50
|
-
* Creates a configuration file if it doesn't exist and returns the file path.
|
|
51
|
-
*
|
|
52
|
-
* @param {string} file - The path to the configuration file.
|
|
53
|
-
* @return {Promise<string>} The path of the created or existing configuration file.
|
|
54
|
-
*/
|
|
55
|
-
static createConfigJS(file: string): Promise<string>;
|
|
23
|
+
static getDefaultConfigData(): Promise<RecipleConfigJS>;
|
|
24
|
+
static getDefaultConfigContent(): Promise<string>;
|
|
25
|
+
static readConfigFile(options: ConfigReadOptions & {
|
|
26
|
+
createIfNotExists: false;
|
|
27
|
+
}): Promise<RecipleConfigJS | null>;
|
|
28
|
+
static readConfigFile(options: ConfigReadOptions & {
|
|
29
|
+
createIfNotExists?: true;
|
|
30
|
+
}): Promise<RecipleConfigJS>;
|
|
31
|
+
static createConfigFile(file: string): Promise<string>;
|
|
32
|
+
static createLoggerOptions(config: RecipleConfig, options?: Partial<LoggerOptions>, cli?: CLI): Promise<LoggerOptions>;
|
|
56
33
|
}
|