Fix issues with circular dependencies between plugins

This commit is contained in:
Dragory 2021-08-18 19:33:22 +03:00
parent 62a6e59b7a
commit e3b6b017a2
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
23 changed files with 36 additions and 29 deletions

View file

@ -24,7 +24,7 @@
"humanize-duration": "^3.15.0", "humanize-duration": "^3.15.0",
"io-ts": "^2.0.0", "io-ts": "^2.0.0",
"js-yaml": "^3.13.1", "js-yaml": "^3.13.1",
"knub": "^30.0.0-beta.40", "knub": "^30.0.0-beta.41",
"knub-command-manager": "^9.1.0", "knub-command-manager": "^9.1.0",
"last-commit-log": "^2.1.0", "last-commit-log": "^2.1.0",
"lodash.chunk": "^4.2.0", "lodash.chunk": "^4.2.0",
@ -3043,9 +3043,9 @@
} }
}, },
"node_modules/knub": { "node_modules/knub": {
"version": "30.0.0-beta.40", "version": "30.0.0-beta.41",
"resolved": "https://registry.npmjs.org/knub/-/knub-30.0.0-beta.40.tgz", "resolved": "https://registry.npmjs.org/knub/-/knub-30.0.0-beta.41.tgz",
"integrity": "sha512-oGuc2Q57Zpgr3iRqCo5dzZdinNsDr1uiJs3TB/4eQNCIaaLqD+a5HfwGbDBW11ix+zTCqbLUI8/4hjJIKpJT8g==", "integrity": "sha512-tKHGG9vh62ZN0JIi2ULYHvJbR28WXhym8c9vRtyQCPQqJ1w3n7Fow9JXbh6BUTSD8QszWbvq1Ri22wbQtBEyNw==",
"dependencies": { "dependencies": {
"discord-api-types": "^0.22.0", "discord-api-types": "^0.22.0",
"discord.js": "^13.0.1", "discord.js": "^13.0.1",
@ -8290,9 +8290,9 @@
} }
}, },
"knub": { "knub": {
"version": "30.0.0-beta.40", "version": "30.0.0-beta.41",
"resolved": "https://registry.npmjs.org/knub/-/knub-30.0.0-beta.40.tgz", "resolved": "https://registry.npmjs.org/knub/-/knub-30.0.0-beta.41.tgz",
"integrity": "sha512-oGuc2Q57Zpgr3iRqCo5dzZdinNsDr1uiJs3TB/4eQNCIaaLqD+a5HfwGbDBW11ix+zTCqbLUI8/4hjJIKpJT8g==", "integrity": "sha512-tKHGG9vh62ZN0JIi2ULYHvJbR28WXhym8c9vRtyQCPQqJ1w3n7Fow9JXbh6BUTSD8QszWbvq1Ri22wbQtBEyNw==",
"requires": { "requires": {
"discord-api-types": "^0.22.0", "discord-api-types": "^0.22.0",
"discord.js": "^13.0.1", "discord.js": "^13.0.1",

View file

@ -39,7 +39,7 @@
"humanize-duration": "^3.15.0", "humanize-duration": "^3.15.0",
"io-ts": "^2.0.0", "io-ts": "^2.0.0",
"js-yaml": "^3.13.1", "js-yaml": "^3.13.1",
"knub": "^30.0.0-beta.40", "knub": "^30.0.0-beta.41",
"knub-command-manager": "^9.1.0", "knub-command-manager": "^9.1.0",
"last-commit-log": "^2.1.0", "last-commit-log": "^2.1.0",
"lodash.chunk": "^4.2.0", "lodash.chunk": "^4.2.0",

View file

@ -25,7 +25,7 @@ export const AutoDeletePlugin = zeppelinGuildPlugin<AutoDeletePluginType>()({
configurationGuide: "Maximum deletion delay is currently 5 minutes", configurationGuide: "Maximum deletion delay is currently 5 minutes",
}, },
dependencies: [TimeAndDatePlugin, LogsPlugin], dependencies: () => [TimeAndDatePlugin, LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -33,7 +33,7 @@ export const AutoReactionsPlugin = zeppelinGuildPlugin<AutoReactionsPluginType>(
`), `),
}, },
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -159,7 +159,7 @@ export const AutomodPlugin = zeppelinGuildPlugin<AutomodPluginType>()({
info: pluginInfo, info: pluginInfo,
// prettier-ignore // prettier-ignore
dependencies: [ dependencies: () => [
LogsPlugin, LogsPlugin,
ModActionsPlugin, ModActionsPlugin,
MutesPlugin, MutesPlugin,

View file

@ -18,6 +18,9 @@ import { postCaseToCaseLogChannel } from "./functions/postToCaseLogChannel";
import { CaseArgs, CaseNoteArgs, CasesPluginType, ConfigSchema } from "./types"; import { CaseArgs, CaseNoteArgs, CasesPluginType, ConfigSchema } from "./types";
import { LogsPlugin } from "../Logs/LogsPlugin"; import { LogsPlugin } from "../Logs/LogsPlugin";
// Workaround for circular dependency
const AnyTypedLogsPlugin = LogsPlugin as any;
const defaultOptions = { const defaultOptions = {
config: { config: {
log_automatic_actions: true, log_automatic_actions: true,
@ -39,7 +42,7 @@ export const CasesPlugin = zeppelinGuildPlugin<CasesPluginType>()({
`), `),
}, },
dependencies: [TimeAndDatePlugin, LogsPlugin], dependencies: () => [TimeAndDatePlugin, AnyTypedLogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -55,7 +55,7 @@ export const CensorPlugin = zeppelinGuildPlugin<CensorPluginType>()({
legacy: true, legacy: true,
}, },
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -8,7 +8,7 @@ export const ChannelArchiverPlugin = zeppelinGuildPlugin<ChannelArchiverPluginTy
name: "channel_archiver", name: "channel_archiver",
showInDocs: false, showInDocs: false,
dependencies: [TimeAndDatePlugin], dependencies: () => [TimeAndDatePlugin],
configSchema: t.type({}), configSchema: t.type({}),
// prettier-ignore // prettier-ignore

View file

@ -24,7 +24,7 @@ export const CompanionChannelsPlugin = zeppelinGuildPlugin<CompanionChannelsPlug
`), `),
}, },
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -52,5 +52,5 @@ export const ContextMenuPlugin = zeppelinGuildPlugin<ContextMenuPluginType>()({
loadAllCommands(pluginData); loadAllCommands(pluginData);
}, },
dependencies: [MutesPlugin, LogsPlugin, UtilityPlugin], dependencies: () => [MutesPlugin, LogsPlugin, UtilityPlugin],
}); });

View file

@ -108,6 +108,10 @@ import { logVoiceChannelLeave } from "./logFunctions/logVoiceChannelLeave";
import { logVoiceChannelMove } from "./logFunctions/logVoiceChannelMove"; import { logVoiceChannelMove } from "./logFunctions/logVoiceChannelMove";
import { logMemberTimedUnban } from "./logFunctions/logMemberTimedUnban"; import { logMemberTimedUnban } from "./logFunctions/logMemberTimedUnban";
import { logDmFailed } from "./logFunctions/logDmFailed"; import { logDmFailed } from "./logFunctions/logDmFailed";
import { CasesPlugin } from "../Cases/CasesPlugin";
// Workaround for circular dependency
const AnyTypedCasesPlugin = CasesPlugin as any;
const defaultOptions: PluginOptions<LogsPluginType> = { const defaultOptions: PluginOptions<LogsPluginType> = {
config: { config: {
@ -139,7 +143,7 @@ export const LogsPlugin = zeppelinGuildPlugin<LogsPluginType>()({
prettyName: "Logs", prettyName: "Logs",
}, },
dependencies: [TimeAndDatePlugin], dependencies: () => [TimeAndDatePlugin, AnyTypedCasesPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -122,7 +122,7 @@ export const ModActionsPlugin = zeppelinGuildPlugin<ModActionsPluginType>()({
`), `),
}, },
dependencies: [TimeAndDatePlugin, CasesPlugin, MutesPlugin, LogsPlugin], dependencies: () => [TimeAndDatePlugin, CasesPlugin, MutesPlugin, LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -70,7 +70,7 @@ export const MutesPlugin = zeppelinGuildPlugin<MutesPluginType>()({
}, },
configSchema: ConfigSchema, configSchema: ConfigSchema,
dependencies: [CasesPlugin, LogsPlugin], dependencies: () => [CasesPlugin, LogsPlugin],
defaultOptions, defaultOptions,
// prettier-ignore // prettier-ignore

View file

@ -27,7 +27,7 @@ export const PersistPlugin = zeppelinGuildPlugin<PersistPluginType>()({
`), `),
}, },
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -36,7 +36,7 @@ export const PostPlugin = zeppelinGuildPlugin<PostPluginType>()({
prettyName: "Post", prettyName: "Post",
}, },
dependencies: [TimeAndDatePlugin, LogsPlugin], dependencies: () => [TimeAndDatePlugin, LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -108,7 +108,7 @@ export const ReactionRolesPlugin = zeppelinGuildPlugin<ReactionRolesPluginType>(
prettyName: "Reaction roles", prettyName: "Reaction roles",
}, },
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -29,7 +29,7 @@ export const RemindersPlugin = zeppelinGuildPlugin<RemindersPluginType>()({
prettyName: "Reminders", prettyName: "Reminders",
}, },
dependencies: [TimeAndDatePlugin], dependencies: () => [TimeAndDatePlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -42,7 +42,7 @@ export const RolesPlugin = zeppelinGuildPlugin<RolesPluginType>()({
}, },
configSchema: ConfigSchema, configSchema: ConfigSchema,
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
defaultOptions, defaultOptions,
// prettier-ignore // prettier-ignore

View file

@ -42,7 +42,7 @@ export const SlowmodePlugin = zeppelinGuildPlugin<SlowmodePluginType>()({
prettyName: "Slowmode", prettyName: "Slowmode",
}, },
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -54,7 +54,7 @@ export const SpamPlugin = zeppelinGuildPlugin<SpamPluginType>()({
legacy: true, legacy: true,
}, },
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -61,7 +61,7 @@ export const TagsPlugin = zeppelinGuildPlugin<TagsPluginType>()({
}, },
configSchema: ConfigSchema, configSchema: ConfigSchema,
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
defaultOptions, defaultOptions,
// prettier-ignore // prettier-ignore

View file

@ -119,7 +119,7 @@ export const UtilityPlugin = zeppelinGuildPlugin<UtilityPluginType>()({
prettyName: "Utility", prettyName: "Utility",
}, },
dependencies: [TimeAndDatePlugin, ModActionsPlugin, LogsPlugin], dependencies: () => [TimeAndDatePlugin, ModActionsPlugin, LogsPlugin],
configSchema: ConfigSchema, configSchema: ConfigSchema,
defaultOptions, defaultOptions,

View file

@ -21,7 +21,7 @@ export const WelcomeMessagePlugin = zeppelinGuildPlugin<WelcomeMessagePluginType
}, },
configSchema: ConfigSchema, configSchema: ConfigSchema,
dependencies: [LogsPlugin], dependencies: () => [LogsPlugin],
defaultOptions, defaultOptions,
// prettier-ignore // prettier-ignore