ClientScript,
PluginType,
RegisterClientHookOptions,
- ServerConfigPlugin
+ ServerConfigPlugin,
+ RegisterClientSettingsScript
} from '../../../shared/models'
import { ClientScript as ClientScriptModule } from '../types/client-script.model'
import { importModule } from './utils'
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) => {
})
}
+ 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))
}