generator-discord 1.3.4 → 1.3.5
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/app/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,YAAY,GAAG,eAAe,CAAC;AACrC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAErB,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AACpC,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAEtC,kBAAkB;AAClB,MAAM,aAAa,GAAG,WAAW,CAAC;AAgBlC,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,MAAM,iBAAiB,GAAuC;IAC7D,UAAU,EAAE;QACX,KAAK,EAAE,IAAI,MAAM,CAAC,2DAA2D,CAAC;QAC9E,YAAY,EAAE,sGAAsG;KACpH;IACD,UAAU,EAAE;QACX,KAAK,EAAE,IAAI,MAAM,CAAC,2DAA2D,CAAC;QAC9E,YAAY,EAAE,sGAAsG;KACpH;IACD,MAAM,EAAE;QACP,KAAK,EAAE,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACpC,YAAY,EAAE,gGAAgG;KAC9G;IACD,IAAI,EAAE;QACL,KAAK,EAAE,IAAI,MAAM,CAAC,sBAAsB,CAAC;QACzC,YAAY,EAAE,mHAAmH;KACjI;CACD,CAAC;AAIF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;IAC9C,OAAO,GAAY,EAAa,CAAC;IAEzC,YAAY,IAAuB,EAAE,OAAgC;QACpE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,SAAS;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YACpC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,6CAA6C;YACtD,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,8BAA8B;oBACpC,KAAK,EAAE,YAAY;iBACnB;gBACD;oBACC,IAAI,EAAE,8BAA8B;oBACpC,KAAK,EAAE,YAAY;iBACnB;gBACD;oBACC,IAAI,EAAE,0BAA0B;oBAChC,KAAK,EAAE,QAAQ;iBACf;gBACD;oBACC,IAAI,EAAE,wBAAwB;oBAC9B,KAAK,EAAE,MAAM;iBACb;aACD;SACD,CAAyB,CAAC;QAG3B,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YAChC;gBACC,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,wBAAwB;gBACjC,OAAO,EAAE,QAAQ;gBACjB,QAAQ,EAAE,CAAC,KAAa,EAAoB,EAAE,CAC7C,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY;aACpH;YACD;gBACC,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,gDAAgD;gBACzD,OAAO,EAAE,gBAAgB;aACzB;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IAC3C,CAAC;IAED,IAAI;QACH,IAAI,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;QACpF,IAAI,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;QACnF,IAAI,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAED,OAAO;QACN,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAE1E,yBAAyB;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "generator-discord",
|
|
3
3
|
"displayName": "Generator-Discord",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.5",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": "./app/index.js",
|
|
7
7
|
"description": "Create a basic Discord-Bot, supporting many programming languages.",
|
|
@@ -25,8 +25,7 @@
|
|
|
25
25
|
"files": [
|
|
26
26
|
"app",
|
|
27
27
|
"templates",
|
|
28
|
-
"src"
|
|
29
|
-
"test"
|
|
28
|
+
"src"
|
|
30
29
|
],
|
|
31
30
|
"types": "app/index.d.ts",
|
|
32
31
|
"author": "Emil Krebs",
|
|
@@ -43,11 +42,11 @@
|
|
|
43
42
|
"yeoman-generator": "^7.1.1"
|
|
44
43
|
},
|
|
45
44
|
"devDependencies": {
|
|
46
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
47
|
-
"@typescript-eslint/parser": "^6.
|
|
45
|
+
"@typescript-eslint/eslint-plugin": "^6.12.0",
|
|
46
|
+
"@typescript-eslint/parser": "^6.12.0",
|
|
48
47
|
"dotenv": "^16.3.1",
|
|
49
48
|
"eslint": "^8.54.0",
|
|
50
|
-
"typescript": "^5.
|
|
49
|
+
"typescript": "^5.3.2",
|
|
51
50
|
"vitest": "^0.34.6",
|
|
52
51
|
"yeoman-test": "^8.2.0"
|
|
53
52
|
}
|
package/templates/python/main.py
CHANGED
|
@@ -18,5 +18,4 @@ async def on_message(message):
|
|
|
18
18
|
if message.content.startswith('!ping'):
|
|
19
19
|
await message.channel.send('Pong!')
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
client.run(TOKEN, log_handler=None)
|
|
21
|
+
client.run(TOKEN)
|
package/test/templates.test.ts
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { describe, expect, test } from 'vitest';
|
|
2
|
-
import { createHelpers } from 'yeoman-test';
|
|
3
|
-
import { spawn, exec } from 'child_process';
|
|
4
|
-
import * as dotenv from 'dotenv';
|
|
5
|
-
import path from 'path';
|
|
6
|
-
import url from 'url';
|
|
7
|
-
|
|
8
|
-
const __dirname = url.fileURLToPath(new URL('../', import.meta.url));
|
|
9
|
-
const DEFAULT_TIMEOUT = 60_000; // 1 minute
|
|
10
|
-
|
|
11
|
-
dotenv.config();
|
|
12
|
-
|
|
13
|
-
const { BOT_TOKEN } = process.env;
|
|
14
|
-
if (!BOT_TOKEN) {
|
|
15
|
-
throw new Error('You must specify a valid bot token in the BOT_TOKEN environment variable');
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const defaultAnswers = {
|
|
19
|
-
botName: 'test-run-bot',
|
|
20
|
-
botType: 'typescript',
|
|
21
|
-
botToken: BOT_TOKEN,
|
|
22
|
-
openWithCode: false,
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
describe('Check if the templates work', () => {
|
|
26
|
-
const targetRoot = path.join(__dirname, 'test-temp');
|
|
27
|
-
const moduleRoot = path.join(__dirname, 'app');
|
|
28
|
-
const resultRoot = path.join(targetRoot, defaultAnswers.botName);
|
|
29
|
-
|
|
30
|
-
test('Should generate and run TypeScript Discord Bot', async () => {
|
|
31
|
-
const context = createHelpers({}).run(moduleRoot);
|
|
32
|
-
|
|
33
|
-
context.targetDirectory = targetRoot;
|
|
34
|
-
context.cleanTestDirectory(true);
|
|
35
|
-
await context
|
|
36
|
-
.onGenerator(generator => {
|
|
37
|
-
generator.destinationRoot(targetRoot);
|
|
38
|
-
})
|
|
39
|
-
.withAnswers(defaultAnswers)
|
|
40
|
-
.then(async () => {
|
|
41
|
-
const result = await runBot('node', ['./dist/src/index.js'], resultRoot, DEFAULT_TIMEOUT);
|
|
42
|
-
expect(result).toContain(BOT_OUTPUT_START);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
context.cleanup();
|
|
46
|
-
}, 120_000);
|
|
47
|
-
|
|
48
|
-
test.skip('Should generate and run Python Discord Bot', async () => {
|
|
49
|
-
const context = createHelpers({}).run(moduleRoot);
|
|
50
|
-
|
|
51
|
-
context.targetDirectory = targetRoot;
|
|
52
|
-
context.cleanTestDirectory(true);
|
|
53
|
-
await context
|
|
54
|
-
.onGenerator(generator => {
|
|
55
|
-
generator.destinationRoot(targetRoot);
|
|
56
|
-
})
|
|
57
|
-
.withAnswers({ ...defaultAnswers, botType: 'python' })
|
|
58
|
-
.then(async () => {
|
|
59
|
-
// install dependencies
|
|
60
|
-
await exec('pip3 install -r requirements.txt', { cwd: resultRoot });
|
|
61
|
-
|
|
62
|
-
const result = await runBot('python', ['./main.py'], resultRoot, DEFAULT_TIMEOUT);
|
|
63
|
-
expect(result).toContain(BOT_OUTPUT_START);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
context.cleanup();
|
|
67
|
-
}, 120_000);
|
|
68
|
-
|
|
69
|
-
test('Should generate and run JavaScript Discord Bot', async () => {
|
|
70
|
-
const context = createHelpers({}).run(moduleRoot);
|
|
71
|
-
|
|
72
|
-
context.targetDirectory = targetRoot;
|
|
73
|
-
context.cleanTestDirectory(true);
|
|
74
|
-
await context
|
|
75
|
-
.onGenerator(generator => {
|
|
76
|
-
generator.destinationRoot(targetRoot);
|
|
77
|
-
})
|
|
78
|
-
.withAnswers({ ...defaultAnswers, botType: 'javascript' })
|
|
79
|
-
.then(async () => {
|
|
80
|
-
const result = await runBot('node', ['./src/index.js'], resultRoot, DEFAULT_TIMEOUT);
|
|
81
|
-
expect(result).toContain(BOT_OUTPUT_START);
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
context.cleanup();
|
|
85
|
-
}, 120_000);
|
|
86
|
-
|
|
87
|
-
test('Should generate and run Rust Discord Bot', async () => {
|
|
88
|
-
const context = createHelpers({}).run(moduleRoot);
|
|
89
|
-
|
|
90
|
-
context.targetDirectory = targetRoot;
|
|
91
|
-
context.cleanTestDirectory(true);
|
|
92
|
-
await context
|
|
93
|
-
.onGenerator(generator => {
|
|
94
|
-
generator.destinationRoot(targetRoot);
|
|
95
|
-
})
|
|
96
|
-
.withAnswers({ ...defaultAnswers, botType: 'rust' })
|
|
97
|
-
.withArguments(['skip-build'])
|
|
98
|
-
.then(async () => {
|
|
99
|
-
const result = await runBot('cargo', ['run', '--release', '--quiet'] , resultRoot, 120_000); // 2 minutes
|
|
100
|
-
expect(result).toContain(BOT_OUTPUT_START);
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
context.cleanup();
|
|
104
|
-
}, 180_000); // 3 minutes
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
/** Run a command in a child process and return the output
|
|
108
|
-
* @param {string} command The command to run
|
|
109
|
-
* @param {string[]} args The arguments to pass to the command
|
|
110
|
-
* @param {string} root The root directory to run the command in
|
|
111
|
-
* @param {number} timeoutTime The time in milliseconds to wait before timing out
|
|
112
|
-
* @returns {Promise<string>} The output of the command
|
|
113
|
-
*/
|
|
114
|
-
async function runBot(command: string, args: string[], root: string, timeoutTime: number): Promise<string> {
|
|
115
|
-
const childProcess = spawn(command, args, { cwd: root, timeout: timeoutTime });
|
|
116
|
-
|
|
117
|
-
const result = await new Promise<string>((resolve) => {
|
|
118
|
-
// timeout
|
|
119
|
-
const safetyTimeout = setTimeout(() => {
|
|
120
|
-
resolve('TIMEOUT');
|
|
121
|
-
}, timeoutTime);
|
|
122
|
-
|
|
123
|
-
// output
|
|
124
|
-
childProcess.stdout.on('data', (data) => {
|
|
125
|
-
clearTimeout(safetyTimeout);
|
|
126
|
-
|
|
127
|
-
resolve(data.toString());
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
childProcess.stderr.on('data', (data) => {
|
|
131
|
-
clearTimeout(safetyTimeout);
|
|
132
|
-
|
|
133
|
-
resolve(data.toString());
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
childProcess.on('close', () => {
|
|
137
|
-
clearTimeout(safetyTimeout);
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
childProcess.kill('SIGINT');
|
|
143
|
-
return result;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const BOT_OUTPUT_START = 'Bot is logged in as';
|