Handle errors during master plugin initialization

Catch errors thrown when constructing or initializing master pluigns and
wrap them in PluginError to ensure that they are properly reported as
plugin errors.
This commit is contained in:
Hornwitser committed 2020-03-13 22:46:17 +01:00
1 parent ddd2027739
commit cb1d744060
1 file changed
+11 -6
+11 -6
View File
@@ -670,13 +670,18 @@ async function loadPlugins(pluginInfos) {
let pluginLoadStarted = Date.now();
let MasterPlugin = plugin.BaseMasterPlugin;
if (pluginInfo.masterEntrypoint) {
({ MasterPlugin } = require(`./plugins/${pluginInfo.name}/${pluginInfo.masterEntrypoint}`));
}
try {
if (pluginInfo.masterEntrypoint) {
({ MasterPlugin } = require(`./plugins/${pluginInfo.name}/${pluginInfo.masterEntrypoint}`));
}
let masterPlugin = new MasterPlugin(pluginInfo);
await masterPlugin.init();
plugins.set(pluginInfo.name, masterPlugin);
let masterPlugin = new MasterPlugin(pluginInfo);
await masterPlugin.init();
plugins.set(pluginInfo.name, masterPlugin);
} catch (err) {
throw new errors.PluginError(pluginInfo.name, err)
}
console.log(`Clusterio | Loaded plugin ${pluginInfo.name} in ${Date.now() - pluginLoadStarted}ms`);
/*