]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Support async onSettingsChange
authorChocobozzz <me@florianbigard.com>
Tue, 20 Apr 2021 14:02:15 +0000 (16:02 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 20 Apr 2021 14:02:15 +0000 (16:02 +0200)
server/lib/plugins/plugin-manager.ts
server/lib/plugins/register-helpers.ts
shared/models/plugins/plugin-settings-manager.model.ts

index 03ea48416b7ab65f8e9d0d60d63f31d59c09eb69..f3766ffa88578efc46238b250ed86e3d060b3c81 100644 (file)
@@ -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 })
       }
index c018e54a815db33d99963e6dafaffbb97a15eca2..aa69ca2a2bbd1148ba01eac3ac5f0b98e1a43ff2 100644 (file)
@@ -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<any>)[] = []
 
   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<any>) => this.onSettingsChangeCallbacks.push(cb)
     }
   }
 
index 165f0dc5bc840450e2eef547cd44bee06a8b668c..3c28c05656f2edbc22c7c228597731fd62658e78 100644 (file)
@@ -5,5 +5,5 @@ export interface PluginSettingsManager {
 
   setSetting: (name: string, value: string) => Promise<any>
 
-  onSettingsChange: (cb: (names: string[]) => void) => void
+  onSettingsChange: (cb: (names: string[]) => Promise<any>) => void
 }