]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/root-helpers/plugins.ts
Fix lint
[github/Chocobozzz/PeerTube.git] / client / src / root-helpers / plugins.ts
index 4bc2c8eb212fedb210b7737701f4fcc4088ba1ac..5344c046833282623d28026b8f0384b2e2b28483 100644 (file)
@@ -7,7 +7,8 @@ import {
   ClientScript,
   PluginType,
   RegisterClientHookOptions,
-  ServerConfigPlugin
+  ServerConfigPlugin,
+  RegisterClientSettingsScript
 } from '../../../shared/models'
 import { ClientScript as ClientScriptModule } from '../types/client-script.model'
 import { importModule } from './utils'
@@ -54,8 +55,9 @@ function loadPlugin (options: {
   pluginInfo: PluginInfo
   peertubeHelpersFactory: (pluginInfo: PluginInfo) => RegisterClientHelpers
   formFields?: FormFields
+  onSettingsScripts?: (options: RegisterClientSettingsScript) => void
 }) {
-  const { hooks, pluginInfo, peertubeHelpersFactory, formFields } = options
+  const { hooks, pluginInfo, peertubeHelpersFactory, formFields, onSettingsScripts } = options
   const { plugin, clientScript } = pluginInfo
 
   const registerHook = (options: RegisterClientHookOptions) => {
@@ -86,12 +88,20 @@ function loadPlugin (options: {
     })
   }
 
+  const registerSettingsScript = (options: RegisterClientSettingsScript) => {
+    if (!onSettingsScripts) {
+      throw new Error('Registering settings script is not supported')
+    }
+
+    return onSettingsScripts(options)
+  }
+
   const peertubeHelpers = peertubeHelpersFactory(pluginInfo)
 
   console.log('Loading script %s of plugin %s.', clientScript.script, plugin.name)
 
   return importModule(clientScript.script)
-    .then((script: ClientScriptModule) => script.register({ registerHook, registerVideoField, peertubeHelpers }))
+    .then((script: ClientScriptModule) => script.register({ registerHook, registerVideoField, registerSettingsScript, peertubeHelpers }))
     .then(() => sortHooksByPriority(hooks))
     .catch(err => console.error('Cannot import or register plugin %s.', pluginInfo.plugin.name, err))
 }