1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Refactor loadPlugin code

This commit is contained in:
Maxr1998 2020-12-09 11:53:00 +01:00
parent 6887d63cca
commit a7fb8ebdd6
No known key found for this signature in database
GPG key ID: 3BA0CD3A11CDF7B8

View file

@ -74,14 +74,23 @@ import { playbackManager } from './playback/playbackmanager';
if (typeof pluginSpec === 'string') {
if (pluginSpec in window) {
console.log(`Loading plugin (via window): ${pluginSpec}`);
let pluginInstance = await window[pluginSpec];
if (typeof pluginInstance === 'function') {
pluginInstance = await pluginInstance();
const pluginDefinition = await window[pluginSpec];
if (typeof pluginDefinition !== 'function') {
const err = new TypeError('Plugin definitions in window have to be an (async) function returning the plugin class');
console.error(err);
throw err;
}
const pluginClass = await pluginDefinition();
if (typeof pluginClass !== 'function') {
const err = new TypeError(`Plugin definition doesn't return a class for '${pluginSpec}'`);
console.error(err);
throw err;
}
// init plugin and pass basic dependencies
plugin = new pluginInstance({
plugin = new pluginClass({
events: Events,
loading,
appSettings,