create-reciple 9.7.2 → 9.10.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.
Files changed (25) hide show
  1. package/README.md +44 -44
  2. package/dist/bin.js +14 -3
  3. package/dist/bin.js.map +1 -1
  4. package/package.json +9 -9
  5. package/templates/javascript/modules/commands/PingCommand.js +68 -68
  6. package/templates/javascript/modules/events/WelcomeEvent.js +54 -54
  7. package/templates/javascript/modules/halts/CommandErrorHalt.js +59 -59
  8. package/templates/javascript/modules/preconditions/ExamplePrecondition.js +27 -27
  9. package/templates/javascript/nodemon.json +15 -15
  10. package/templates/javascript/package.json +17 -17
  11. package/templates/typescript/nodemon.json +16 -16
  12. package/templates/typescript/package.json +0 -1
  13. package/templates/typescript/src/commands/PingCommand.ts +53 -46
  14. package/templates/typescript/src/events/WelcomeEvent.ts +39 -37
  15. package/templates/typescript/src/halts/CommandErrorHalt.ts +44 -44
  16. package/templates/typescript/src/preconditions/ExamplePrecondition.ts +18 -18
  17. package/templates/typescript-decorators/dot.gitignore +133 -0
  18. package/templates/typescript-decorators/nodemon.json +17 -0
  19. package/templates/typescript-decorators/package.json +22 -0
  20. package/templates/typescript-decorators/src/commands/PingCommand.ts +46 -0
  21. package/templates/typescript-decorators/src/events/WelcomeEvent.ts +37 -0
  22. package/templates/typescript-decorators/src/halts/CommandErrorHalt.ts +44 -0
  23. package/templates/typescript-decorators/src/preconditions/ExamplePrecondition.ts +18 -0
  24. package/templates/typescript-decorators/template.json +4 -0
  25. package/templates/typescript-decorators/tsconfig.json +19 -0
package/README.md CHANGED
@@ -1,44 +1,44 @@
1
- <h1 align="center">
2
- <img src="https://i.imgur.com/h0ljJR5.png" width="50%">
3
- <br>
4
- </h1>
5
-
6
- <h3 align="center">
7
- <a href="https://discord.gg/2gyckrwK7b">
8
- <img src="https://img.shields.io/discord/1032785824686817291?color=5865F2&logo=discord&logoColor=white">
9
- </a>
10
- <a href="https://npmjs.org/package/create-reciple">
11
- <img src="https://img.shields.io/npm/v/create-reciple?label=npm">
12
- </a>
13
- <a href="https://github.com/thenorthsolution/Reciple/tree/main/packages/create-reciple">
14
- <img src="https://img.shields.io/npm/dt/create-reciple?maxAge=3600">
15
- </a>
16
- <a href="https://www.codefactor.io/repository/github/thenorthsolution/reciple">
17
- <img src="https://www.codefactor.io/repository/github/thenorthsolution/reciple/badge">
18
- </a>
19
- <br>
20
- <div style="padding-top: 1rem">
21
- <a href="https://discord.gg/2gyckrwK7b">
22
- <img src="http://invidget.switchblade.xyz/2gyckrwK7b">
23
- </a>
24
- </div>
25
- </h3>
26
-
27
- ---
28
-
29
- ## About
30
-
31
- `create-reciple` is a tool used to easily create Reciple projects.
32
-
33
- ## Installation
34
-
35
- ```bash
36
- npm create reciple@latest
37
- yarn create reciple@latest
38
- pnpm create reciple@latest
39
- ```
40
-
41
- ## Templates
42
- - Javascript (ES Modules)
43
- - Typescript (ES Modules)
44
-
1
+ <h1 align="center">
2
+ <img src="https://i.imgur.com/h0ljJR5.png" width="50%">
3
+ <br>
4
+ </h1>
5
+
6
+ <h3 align="center">
7
+ <a href="https://discord.gg/2gyckrwK7b">
8
+ <img src="https://img.shields.io/discord/1032785824686817291?color=5865F2&logo=discord&logoColor=white">
9
+ </a>
10
+ <a href="https://npmjs.org/package/create-reciple">
11
+ <img src="https://img.shields.io/npm/v/create-reciple?label=npm">
12
+ </a>
13
+ <a href="https://github.com/thenorthsolution/Reciple/tree/main/packages/create-reciple">
14
+ <img src="https://img.shields.io/npm/dt/create-reciple?maxAge=3600">
15
+ </a>
16
+ <a href="https://www.codefactor.io/repository/github/thenorthsolution/reciple">
17
+ <img src="https://www.codefactor.io/repository/github/thenorthsolution/reciple/badge">
18
+ </a>
19
+ <br>
20
+ <div style="padding-top: 1rem">
21
+ <a href="https://discord.gg/2gyckrwK7b">
22
+ <img src="http://invidget.switchblade.xyz/2gyckrwK7b">
23
+ </a>
24
+ </div>
25
+ </h3>
26
+
27
+ ---
28
+
29
+ ## About
30
+
31
+ `create-reciple` is a tool used to easily create Reciple projects.
32
+
33
+ ## Installation
34
+
35
+ ```bash
36
+ npm create reciple@latest
37
+ yarn create reciple@latest
38
+ pnpm create reciple@latest
39
+ ```
40
+
41
+ ## Templates
42
+ - Javascript (ES Modules)
43
+ - Typescript (ES Modules)
44
+
package/dist/bin.js CHANGED
@@ -3,7 +3,7 @@ import { packageJson, packageManagers, templatesFolder } from './utils/constants
3
3
  import { getTemplates } from './utils/helpers.js';
4
4
  import { Setup } from './classes/Setup.js';
5
5
  import { kleur } from 'fallout-utility';
6
- import { outro } from '@clack/prompts';
6
+ import { outro, select } from '@clack/prompts';
7
7
  import { Command } from 'commander';
8
8
  import { TemplateBuilder } from './classes/TemplateBuilder.js';
9
9
  const command = new Command()
@@ -28,11 +28,22 @@ const setup = new Setup({
28
28
  addons: Array.isArray(options.addons) && options.addons.length ? options.addons : undefined
29
29
  });
30
30
  await setup.prompt(options.force || false);
31
- const template = templates.find(p => p.language === (setup.isTypescript ? 'Typescript' : 'Javascript'));
32
- if (!template) {
31
+ const availableTemplates = templates.filter(p => p.language === (setup.isTypescript ? 'Typescript' : 'Javascript'));
32
+ if (!availableTemplates.length) {
33
33
  setup.cancelPrompts(`Template not found`);
34
34
  process.exit(1);
35
35
  }
36
+ const templateId = availableTemplates.length === 1
37
+ ? availableTemplates[0].id
38
+ : await select({
39
+ message: 'Select a template',
40
+ options: availableTemplates.map(t => ({
41
+ label: t.name,
42
+ value: t.id
43
+ })),
44
+ maxItems: 1
45
+ });
46
+ const template = templates.find(t => t.id === templateId);
36
47
  if (setup.packageManager && !packageManagers.some(p => p.value === setup.packageManager)) {
37
48
  setup.cancelPrompts(`Invalid package manager`);
38
49
  process.exit(1);
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "create-reciple",
3
3
  "description": "A Reciple Discord bot project builder",
4
4
  "license": "GPL-3.0",
5
- "version": "9.7.2",
5
+ "version": "9.10.0",
6
6
  "type": "module",
7
7
  "types": "./dist/index.d.ts",
8
8
  "module": "./dist/index.js",
@@ -37,23 +37,23 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@clack/prompts": "^0.7.0",
40
- "@reciple/core": "^9.5.0",
41
- "@reciple/decorators": "^9.1.4",
42
- "@reciple/utils": "^9.3.2",
40
+ "@reciple/core": "^9.7.0",
41
+ "@reciple/decorators": "^9.3.0",
42
+ "@reciple/utils": "^9.5.0",
43
43
  "commander": "^12.1.0",
44
44
  "compressing": "^1.10.1",
45
45
  "detect-indent": "^7.0.1",
46
- "discord.js": "^14.15.3",
46
+ "discord.js": "^14.16.1",
47
47
  "fallout-utility": "^2.9.1",
48
- "ora": "^8.0.1",
48
+ "ora": "^8.1.0",
49
49
  "package-json": "^10.0.1",
50
- "reciple": "^9.5.1"
50
+ "reciple": "^9.7.0"
51
51
  },
52
52
  "devDependencies": {
53
- "@types/node": "^22.0.3",
53
+ "@types/node": "^22.5.2",
54
54
  "nodemon": "^3.1.4",
55
55
  "rimraf": "^6.0.1",
56
56
  "typescript": "^5.5.4"
57
57
  },
58
- "gitHead": "7931a4dabd08aa5bb582627464b34e6825d838cd"
58
+ "gitHead": "7bc6d1eb34d8f2cd6002061e221e9d1114a3fada"
59
59
  }
@@ -1,68 +1,68 @@
1
- // @ts-check
2
- import { CommandType, ContextMenuCommandBuilder, MessageCommandBuilder, SlashCommandBuilder } from "reciple";
3
-
4
- export class PingCommand {
5
- /**
6
- * The module commands.
7
- * @typedef {import("reciple").AnyCommandResolvable[]}
8
- */
9
- commands = [
10
- new SlashCommandBuilder()
11
- .setName('ping')
12
- .setDescription('Replies with pong!')
13
- .setExecute(data => this.handleCommandExecute(data)),
14
-
15
- new ContextMenuCommandBuilder()
16
- .setName('ping')
17
- .setType('Message')
18
- .setExecute(data => this.handleCommandExecute(data)),
19
-
20
- new MessageCommandBuilder()
21
- .setName('ping')
22
- .setDescription('Replies with pong!')
23
- .setExecute(data => this.handleCommandExecute(data))
24
- ];
25
-
26
- /**
27
- * Executed when module is started (Bot is not logged in).
28
- *
29
- * @return {Promise<boolean>}
30
- */
31
- async onStart() {
32
- return true;
33
- }
34
-
35
- /**
36
- * Executes when the module is loaded (Bot is logged in).
37
- *
38
- * @return {Promise<void>}
39
- */
40
- async onLoad() {}
41
-
42
- /**
43
- * Executes when the module is unloaded (Bot is pre log out).
44
- *
45
- * @return {Promise<void>}
46
- */
47
- async onUnload() {}
48
-
49
- /**
50
- * Called by the command builder when a command is executed.
51
- *
52
- * @param {import("reciple").AnyCommandExecuteData} data
53
- * @returns {Promise<void>}
54
- */
55
- async handleCommandExecute(data) {
56
- switch (data.type) {
57
- case CommandType.ContextMenuCommand:
58
- case CommandType.SlashCommand:
59
- await data.interaction.reply('Pong!');
60
- return;
61
- case CommandType.MessageCommand:
62
- await data.message.reply('Pong!');
63
- return;
64
- }
65
- }
66
- }
67
-
68
- export default new PingCommand();
1
+ // @ts-check
2
+ import { CommandType, ContextMenuCommandBuilder, MessageCommandBuilder, SlashCommandBuilder } from "reciple";
3
+
4
+ export class PingCommand {
5
+ /**
6
+ * The module commands.
7
+ * @typedef {import("reciple").AnyCommandResolvable[]}
8
+ */
9
+ commands = [
10
+ new SlashCommandBuilder()
11
+ .setName('ping')
12
+ .setDescription('Replies with pong!')
13
+ .setExecute(data => this.handleCommandExecute(data)),
14
+
15
+ new ContextMenuCommandBuilder()
16
+ .setName('ping')
17
+ .setType('Message')
18
+ .setExecute(data => this.handleCommandExecute(data)),
19
+
20
+ new MessageCommandBuilder()
21
+ .setName('ping')
22
+ .setDescription('Replies with pong!')
23
+ .setExecute(data => this.handleCommandExecute(data))
24
+ ];
25
+
26
+ /**
27
+ * Executed when module is started (Bot is not logged in).
28
+ *
29
+ * @return {Promise<boolean>}
30
+ */
31
+ async onStart() {
32
+ return true;
33
+ }
34
+
35
+ /**
36
+ * Executes when the module is loaded (Bot is logged in).
37
+ *
38
+ * @return {Promise<void>}
39
+ */
40
+ async onLoad() {}
41
+
42
+ /**
43
+ * Executes when the module is unloaded (Bot is pre log out).
44
+ *
45
+ * @return {Promise<void>}
46
+ */
47
+ async onUnload() {}
48
+
49
+ /**
50
+ * Called by the command builder when a command is executed.
51
+ *
52
+ * @param {import("reciple").AnyCommandExecuteData} data
53
+ * @returns {Promise<void>}
54
+ */
55
+ async handleCommandExecute(data) {
56
+ switch (data.type) {
57
+ case CommandType.ContextMenuCommand:
58
+ case CommandType.SlashCommand:
59
+ await data.interaction.reply('Pong!');
60
+ return;
61
+ case CommandType.MessageCommand:
62
+ await data.message.reply('Pong!');
63
+ return;
64
+ }
65
+ }
66
+ }
67
+
68
+ export default new PingCommand();
@@ -1,54 +1,54 @@
1
- // @ts-check
2
-
3
- import { GuildMember } from "discord.js";
4
-
5
- export class WelcomeEvent {
6
- constructor() {
7
- // Make sure `handleWelcomeEvent` is bound to `this`
8
- this.handleWelcomeEvent = this.handleWelcomeEvent.bind(this);
9
- }
10
-
11
- /**
12
- * Executed when module is started (Bot is not logged in).
13
- *
14
- * @return {Promise<boolean>}
15
- */
16
- async onStart() {
17
- return true;
18
- }
19
-
20
- /**
21
- * Executes when the module is loaded (Bot is logged in).
22
- *
23
- * @param {import("reciple").RecipleModuleLoadData} param0
24
- * @return {Promise<void>}
25
- */
26
- async onLoad({ client }) {
27
- // Add the listener to the client
28
- client.on('guildMemberAdd', this.handleWelcomeEvent);
29
- }
30
-
31
- /**
32
- * Executes when the module is unloaded (Bot is pre log out).
33
- *
34
- * @param {import("reciple").RecipleModuleUnloadData} param0
35
- * @return {Promise<void>}
36
- */
37
- async onUnload({ client }) {
38
- // Properly remove the listener from the client
39
- client.removeListener('guildMemberAdd', this.handleWelcomeEvent);
40
- }
41
-
42
- /**
43
- * Called when a user joins the server.
44
- *
45
- * @param {GuildMember} member
46
- * @return {Promise<void>}
47
- */
48
- async handleWelcomeEvent(member) {
49
- await member.send(`Welcome to **${member.guild.name}** server!`)
50
- .catch(() => null);
51
- }
52
- }
53
-
54
- export default new WelcomeEvent();
1
+ // @ts-check
2
+
3
+ import { GuildMember } from "discord.js";
4
+
5
+ export class WelcomeEvent {
6
+ constructor() {
7
+ // Make sure `handleWelcomeEvent` is bound to `this`
8
+ this.handleWelcomeEvent = this.handleWelcomeEvent.bind(this);
9
+ }
10
+
11
+ /**
12
+ * Executed when module is started (Bot is not logged in).
13
+ *
14
+ * @return {Promise<boolean>}
15
+ */
16
+ async onStart() {
17
+ return true;
18
+ }
19
+
20
+ /**
21
+ * Executes when the module is loaded (Bot is logged in).
22
+ *
23
+ * @param {import("reciple").RecipleModuleLoadData} param0
24
+ * @return {Promise<void>}
25
+ */
26
+ async onLoad({ client }) {
27
+ // Add the listener to the client
28
+ client.on('guildMemberAdd', this.handleWelcomeEvent);
29
+ }
30
+
31
+ /**
32
+ * Executes when the module is unloaded (Bot is pre log out).
33
+ *
34
+ * @param {import("reciple").RecipleModuleUnloadData} param0
35
+ * @return {Promise<void>}
36
+ */
37
+ async onUnload({ client }) {
38
+ // Properly remove the listener from the client
39
+ client.removeListener('guildMemberAdd', this.handleWelcomeEvent);
40
+ }
41
+
42
+ /**
43
+ * Called when a user joins the server.
44
+ *
45
+ * @param {GuildMember} member
46
+ * @return {Promise<void>}
47
+ */
48
+ async handleWelcomeEvent(member) {
49
+ await member.send(`Welcome to **${member.guild.name}** server!`)
50
+ .catch(() => null);
51
+ }
52
+ }
53
+
54
+ export default new WelcomeEvent();
@@ -1,59 +1,59 @@
1
- // @ts-check
2
-
3
- import { CommandHaltReason, CommandType } from 'reciple';
4
-
5
- export class CommandErrorHalt {
6
- id = 'my.reciple.js.commanderrorhalt';
7
- disabled = false;
8
-
9
- /**
10
- * @param {import('reciple').ContextMenuCommandHaltTriggerData} data
11
- */
12
- contextMenuCommandHalt(data) {
13
- return this.halt(data);
14
- }
15
-
16
- /**
17
- * @param {import('reciple').MessageCommandHaltTriggerData} data
18
- */
19
- messageCommandHalt(data) {
20
- return this.halt(data);
21
- }
22
-
23
- /**
24
- * @param {import('reciple').SlashCommandHaltTriggerData} data
25
- */
26
- slashCommandHalt(data) {
27
- return this.halt(data);
28
- }
29
-
30
- /**
31
- * @param {import('reciple').AnyCommandHaltTriggerData} data
32
- * @returns
33
- */
34
- async halt(data) {
35
- if (data.reason !== CommandHaltReason.Error) return;
36
-
37
- const content = `An error occured while executing this command`;
38
-
39
- switch (data.commandType) {
40
- case CommandType.ContextMenuCommand:
41
- case CommandType.SlashCommand:
42
- const interaction = data.executeData.interaction;
43
-
44
- if (interaction.replied || interaction.deferred) {
45
- await interaction.editReply(content);
46
- } else {
47
- await interaction.reply(content);
48
- }
49
- break;
50
- case CommandType.MessageCommand:
51
- await data.executeData.message.reply(content);
52
- break;
53
- }
54
-
55
- reciple.logger?.error(data.error);
56
-
57
- return true;
58
- }
59
- }
1
+ // @ts-check
2
+
3
+ import { CommandHaltReason, CommandType } from 'reciple';
4
+
5
+ export class CommandErrorHalt {
6
+ id = 'my.reciple.js.commanderrorhalt';
7
+ disabled = false;
8
+
9
+ /**
10
+ * @param {import('reciple').ContextMenuCommandHaltTriggerData} data
11
+ */
12
+ contextMenuCommandHalt(data) {
13
+ return this.halt(data);
14
+ }
15
+
16
+ /**
17
+ * @param {import('reciple').MessageCommandHaltTriggerData} data
18
+ */
19
+ messageCommandHalt(data) {
20
+ return this.halt(data);
21
+ }
22
+
23
+ /**
24
+ * @param {import('reciple').SlashCommandHaltTriggerData} data
25
+ */
26
+ slashCommandHalt(data) {
27
+ return this.halt(data);
28
+ }
29
+
30
+ /**
31
+ * @param {import('reciple').AnyCommandHaltTriggerData} data
32
+ * @returns
33
+ */
34
+ async halt(data) {
35
+ if (data.reason !== CommandHaltReason.Error) return;
36
+
37
+ const content = `An error occured while executing this command`;
38
+
39
+ switch (data.commandType) {
40
+ case CommandType.ContextMenuCommand:
41
+ case CommandType.SlashCommand:
42
+ const interaction = data.executeData.interaction;
43
+
44
+ if (interaction.replied || interaction.deferred) {
45
+ await interaction.editReply(content);
46
+ } else {
47
+ await interaction.reply(content);
48
+ }
49
+ break;
50
+ case CommandType.MessageCommand:
51
+ await data.executeData.message.reply(content);
52
+ break;
53
+ }
54
+
55
+ reciple.logger?.error(data.error);
56
+
57
+ return true;
58
+ }
59
+ }
@@ -1,27 +1,27 @@
1
- // @ts-check
2
-
3
- export class ExamplePrecondition {
4
- id = 'my.reciple.js.exampleprecondition';
5
- disabled = false;
6
-
7
- /**
8
- * @param {import("reciple").ContextMenuCommandExecuteData} execute
9
- */
10
- contextMenuCommandExecute(execute) {
11
- return true;
12
- }
13
-
14
- /**
15
- * @param {import("reciple").MessageCommandExecuteData} excute
16
- */
17
- messageCommandExecute(excute) {
18
- return true;
19
- }
20
-
21
- /**
22
- * @param {import("reciple").SlashCommandExecuteData} execute
23
- */
24
- slashCommandExecute(execute) {
25
- return true;
26
- }
27
- };
1
+ // @ts-check
2
+
3
+ export class ExamplePrecondition {
4
+ id = 'my.reciple.js.exampleprecondition';
5
+ disabled = false;
6
+
7
+ /**
8
+ * @param {import("reciple").ContextMenuCommandExecuteData} execute
9
+ */
10
+ contextMenuCommandExecute(execute) {
11
+ return true;
12
+ }
13
+
14
+ /**
15
+ * @param {import("reciple").MessageCommandExecuteData} excute
16
+ */
17
+ messageCommandExecute(excute) {
18
+ return true;
19
+ }
20
+
21
+ /**
22
+ * @param {import("reciple").SlashCommandExecuteData} execute
23
+ */
24
+ slashCommandExecute(execute) {
25
+ return true;
26
+ }
27
+ };
@@ -1,16 +1,16 @@
1
- {
2
- "$schema": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/nodemon.json",
3
- "restartable": "r",
4
- "ext": "js,mjs,json",
5
- "signal": "SIGHUP",
6
- "ignore": [
7
- ".git",
8
- "node_modules/**"
9
- ],
10
- "watch": [
11
- "src",
12
- "reciple.mjs",
13
- ".env"
14
- ],
15
- "exec": "reciple start"
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/nodemon.json",
3
+ "restartable": "r",
4
+ "ext": "js,mjs,json",
5
+ "signal": "SIGHUP",
6
+ "ignore": [
7
+ ".git",
8
+ "node_modules/**"
9
+ ],
10
+ "watch": [
11
+ "src",
12
+ "reciple.mjs",
13
+ ".env"
14
+ ],
15
+ "exec": "reciple start"
16
16
  }