+
+ private loadPlugins (translations?: { [ id: string ]: string }) {
+ this.pluginsManager = new PluginsManager({
+ peertubeHelpersFactory: _ => this.buildPeerTubeHelpers(translations)
+ })
+
+ this.pluginsManager.loadPluginsList(this.config)
+
+ return this.pluginsManager.ensurePluginsAreLoaded('embed')
+ }
+
+ private buildPeerTubeHelpers (translations?: { [ id: string ]: string }): RegisterClientHelpers {
+ function unimplemented (): any {
+ throw new Error('This helper is not implemented in embed.')
+ }
+
+ return {
+ getBaseStaticRoute: unimplemented,
+
+ getBaseRouterRoute: unimplemented,
+
+ getSettings: unimplemented,
+
+ isLoggedIn: unimplemented,
+ getAuthHeader: unimplemented,
+
+ notifier: {
+ info: unimplemented,
+ error: unimplemented,
+ success: unimplemented
+ },
+
+ showModal: unimplemented,
+
+ getServerConfig: unimplemented,
+
+ markdownRenderer: {
+ textMarkdownToHTML: unimplemented,
+ enhancedMarkdownToHTML: unimplemented
+ },
+
+ translate: (value: string) => {
+ return Promise.resolve(peertubeTranslate(value, translations))
+ }
+ }
+ }