From 24a792404cac0dffff91853af33310fbb7a30297 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 20 Apr 2021 16:02:15 +0200 Subject: Support async onSettingsChange --- server/lib/plugins/plugin-manager.ts | 4 ++-- server/lib/plugins/register-helpers.ts | 4 ++-- shared/models/plugins/plugin-settings-manager.model.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/lib/plugins/plugin-manager.ts b/server/lib/plugins/plugin-manager.ts index 03ea48416..f3766ffa8 100644 --- a/server/lib/plugins/plugin-manager.ts +++ b/server/lib/plugins/plugin-manager.ts @@ -189,7 +189,7 @@ export class PluginManager implements ServerHook { return undefined } - onSettingsChanged (name: string, settings: any) { + async onSettingsChanged (name: string, settings: any) { const registered = this.getRegisteredPluginByShortName(name) if (!registered) { logger.error('Cannot find plugin %s to call on settings changed.', name) @@ -197,7 +197,7 @@ export class PluginManager implements ServerHook { for (const cb of registered.registerHelpers.getOnSettingsChangedCallbacks()) { try { - cb(settings) + await cb(settings) } catch (err) { logger.error('Cannot run on settings changed callback for %s.', registered.npmName, { err }) } diff --git a/server/lib/plugins/register-helpers.ts b/server/lib/plugins/register-helpers.ts index c018e54a8..aa69ca2a2 100644 --- a/server/lib/plugins/register-helpers.ts +++ b/server/lib/plugins/register-helpers.ts @@ -73,7 +73,7 @@ export class RegisterHelpers { private idAndPassAuths: RegisterServerAuthPassOptions[] = [] private externalAuths: RegisterServerAuthExternalOptions[] = [] - private readonly onSettingsChangeCallbacks: ((settings: any) => void)[] = [] + private readonly onSettingsChangeCallbacks: ((settings: any) => Promise)[] = [] private readonly router: express.Router @@ -277,7 +277,7 @@ export class RegisterHelpers { setSetting: (name: string, value: string) => PluginModel.setSetting(this.plugin.name, this.plugin.type, name, value), - onSettingsChange: (cb: (settings: any) => void) => this.onSettingsChangeCallbacks.push(cb) + onSettingsChange: (cb: (settings: any) => Promise) => this.onSettingsChangeCallbacks.push(cb) } } diff --git a/shared/models/plugins/plugin-settings-manager.model.ts b/shared/models/plugins/plugin-settings-manager.model.ts index 165f0dc5b..3c28c0565 100644 --- a/shared/models/plugins/plugin-settings-manager.model.ts +++ b/shared/models/plugins/plugin-settings-manager.model.ts @@ -5,5 +5,5 @@ export interface PluginSettingsManager { setSetting: (name: string, value: string) => Promise - onSettingsChange: (cb: (names: string[]) => void) => void + onSettingsChange: (cb: (names: string[]) => Promise) => void } -- cgit v1.2.3