@raspberryvarg/bot-kit 1.0.3 → 1.0.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/dist/core/config.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ClientOptions } from 'discord.js';
|
|
1
|
+
import type { ClientOptions, Interaction } from 'discord.js';
|
|
2
|
+
export type InteractionMiddleware = (interaction: Interaction, next: () => Promise<void>) => void | Promise<void>;
|
|
2
3
|
export interface BotKitConfig {
|
|
3
4
|
/**
|
|
4
5
|
* The level of logs to pass through to {@link logger}.
|
|
@@ -15,7 +16,7 @@ export interface BotKitConfig {
|
|
|
15
16
|
clientOptions: ClientOptions;
|
|
16
17
|
clientToken: string;
|
|
17
18
|
clientApplicationId: string;
|
|
18
|
-
paths?: string[];
|
|
19
|
+
paths?: readonly string[];
|
|
19
20
|
commandSync: {
|
|
20
21
|
shouldSync: (newHash: string) => boolean | Promise<boolean>;
|
|
21
22
|
onSynced?: (newHash: string) => void | Promise<void>;
|
|
@@ -23,8 +24,9 @@ export interface BotKitConfig {
|
|
|
23
24
|
target: 'global';
|
|
24
25
|
} | {
|
|
25
26
|
target: 'development';
|
|
26
|
-
testGuildIds: string | string[];
|
|
27
|
+
testGuildIds: string | readonly string[];
|
|
27
28
|
});
|
|
29
|
+
interactionMiddleware: readonly InteractionMiddleware[];
|
|
28
30
|
}
|
|
29
31
|
export type BotKitLoggerMeta = Record<string, any>;
|
|
30
32
|
export interface BotKitLogger {
|
|
@@ -47,6 +49,7 @@ declare const globalConfig: {
|
|
|
47
49
|
logLevel: "debug" | "error" | "info" | "none" | "verbose" | "warn";
|
|
48
50
|
logger: BotKitLogger;
|
|
49
51
|
supportHotReloading: false;
|
|
52
|
+
interactionMiddleware: readonly InteractionMiddleware[];
|
|
50
53
|
};
|
|
51
54
|
export declare function configure(options: BotKitConfigPartial): BotKitConfig;
|
|
52
55
|
export type BotKitConfigPartial = Omit<BotKitConfig, keyof typeof globalConfig> & Partial<Pick<BotKitConfig, keyof typeof globalConfig>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7D,MAAM,MAAM,qBAAqB,GAAG,CAClC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KACtB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;OAEG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAE5B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1B,WAAW,EAAE;QACX,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACtD,GAAG,CACA;QACE,MAAM,EAAE,QAAQ,CAAC;KAClB,GACD;QACE,MAAM,EAAE,aAAa,CAAC;QACtB,YAAY,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;KAC1C,CACJ,CAAC;IAEF,qBAAqB,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACzD;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3D,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1D,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;CAC/E;AAuCD,eAAO,MAAM,QAAQ;aACnB,IAAI,EAAE,CAAC;aACP,KAAK,EAAE,CAAC;aACR,IAAI,EAAE,CAAC;aACP,IAAI,EAAE,CAAC;aACP,KAAK,EAAE,CAAC;aACR,OAAO,EAAE,CAAC;CACF,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,QAAQ,CAAC;AAqBnD,QAAA,MAAM,YAAY;;;;2BAIa,SAAS,qBAAqB,EAAE;CAC9B,CAAC;AAElC,wBAAgB,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAEpE;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,OAAO,YAAY,CAAC,GAC7E,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,OAAO,YAAY,CAAC,CAAC,CAAC;AAEzD,wBAAgB,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC,CAElD"}
|
package/dist/core/config.js
CHANGED
|
@@ -55,6 +55,7 @@ const globalConfig = {
|
|
|
55
55
|
logLevel: getEnvLogLevel() ?? (process.env.NODE_ENV === 'production' ? 'warn' : 'info'),
|
|
56
56
|
logger: defaultLogger,
|
|
57
57
|
supportHotReloading: false,
|
|
58
|
+
interactionMiddleware: [],
|
|
58
59
|
};
|
|
59
60
|
export function configure(options) {
|
|
60
61
|
return Object.assign(globalConfig, options);
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/discord/router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/discord/router.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,YAAY,CAAC;AAOtD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAWrD"}
|
package/dist/discord/router.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getConfig } from '../core/config.js';
|
|
1
2
|
import { coreLog } from '../internal/coreLog.js';
|
|
2
3
|
import * as registry from './registry.js';
|
|
3
4
|
const isDev = process.env.NODE_ENV === 'development';
|
|
@@ -13,9 +14,14 @@ export function initializeRouter(client) {
|
|
|
13
14
|
}
|
|
14
15
|
}
|
|
15
16
|
async function handle(interaction) {
|
|
17
|
+
const middlewares = getConfig().interactionMiddleware;
|
|
16
18
|
try {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
if (middlewares.length === 0) {
|
|
20
|
+
await doHandle(interaction);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
await executeMiddlewares(middlewares, interaction, doHandle);
|
|
24
|
+
}
|
|
19
25
|
}
|
|
20
26
|
catch (error) {
|
|
21
27
|
coreLog.error('Error while handling interaction', error, {
|
|
@@ -63,4 +69,19 @@ async function doHandle(interaction) {
|
|
|
63
69
|
await handler.execute(interaction);
|
|
64
70
|
}
|
|
65
71
|
}
|
|
72
|
+
async function executeMiddlewares(pipeline, interaction, finalStep) {
|
|
73
|
+
let index = -1;
|
|
74
|
+
const dispatch = async (i) => {
|
|
75
|
+
if (i <= index)
|
|
76
|
+
throw new Error('next() called multiple times in middleware');
|
|
77
|
+
index = i;
|
|
78
|
+
if (i === pipeline.length) {
|
|
79
|
+
await finalStep(interaction);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const middleware = pipeline[i];
|
|
83
|
+
await middleware(interaction, () => dispatch(i + 1));
|
|
84
|
+
};
|
|
85
|
+
await dispatch(0);
|
|
86
|
+
}
|
|
66
87
|
//# sourceMappingURL=router.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/discord/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAI1C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;AACrD,MAAM,GAAG,GAAG,UAEX,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,0BAA0B,CAAC,IAAI,MAAM,CAAC;IACpE,IAAI,KAAK,IAAI,GAAG,CAAC,0BAA0B,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAExC,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,0BAA0B,GAAG,OAAO,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,WAAwB;IAC5C,IAAI,CAAC;QACH
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/discord/router.ts"],"names":[],"mappings":"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"}
|