fix: Keep symbols in actions manager (#9293)

fix: keep symbols in actions manager
This commit is contained in:
Jiralite
2023-03-29 18:27:23 +01:00
committed by GitHub
parent 3cf4f4b317
commit 984bd55b43
2 changed files with 15 additions and 4 deletions

View File

@@ -19,7 +19,18 @@ async function writeWebsocketHandlerImports() {
} }
async function writeClientActionImports() { async function writeClientActionImports() {
const lines = ["'use strict';\n", 'class ActionsManager {', ' constructor(client) {', ' this.client = client;\n']; const lines = [
"'use strict';\n",
'class ActionsManager {',
' // These symbols represent fully built data that we inject at times when calling actions manually.',
' // Action#getUser, for example, will return the injected data (which is assumed to be a built structure)',
' // instead of trying to make it from provided data',
" injectedUser = Symbol('djs.actions.injectedUser');",
" injectedChannel = Symbol('djs.actions.injectedChannel');",
" injectedMessage = Symbol('djs.actions.injectedMessage');\n",
' constructor(client) {',
' this.client = client;\n',
];
const actionsDirectory = new URL('../src/client/actions', import.meta.url); const actionsDirectory = new URL('../src/client/actions', import.meta.url);
for (const file of (await readdir(actionsDirectory)).sort()) { for (const file of (await readdir(actionsDirectory)).sort()) {

View File

@@ -1,9 +1,9 @@
'use strict'; 'use strict';
class ActionsManager { class ActionsManager {
// These symbols represent fully built data that we inject at times when calling actions manually. Action#getUser, // These symbols represent fully built data that we inject at times when calling actions manually.
// for example, will return the injected data (which is assumed to be a built structure) instead of trying to make it // Action#getUser, for example, will return the injected data (which is assumed to be a built structure)
// from provided data // instead of trying to make it from provided data
injectedUser = Symbol('djs.actions.injectedUser'); injectedUser = Symbol('djs.actions.injectedUser');
injectedChannel = Symbol('djs.actions.injectedChannel'); injectedChannel = Symbol('djs.actions.injectedChannel');
injectedMessage = Symbol('djs.actions.injectedMessage'); injectedMessage = Symbol('djs.actions.injectedMessage');