Electron plugin architecture, inject plugin code into the application

Viewed 24

As the title say, I am trying to develop a plugin architecture for an electron app. So far I have handle my custom plugin store the download of the plugin source which consist of an single main.js and a style.css.

I am stuck now since I don't know how to "require" the file from my application.

A little more explanation on this main.js file: I want to require that main.js file to that I can retrieve the exported class to create a new instance in my PluginManager system.

It would be like so:

// plugin-manager.ts

loadPlugin(pluginId: string) {
    const pluginClass = await import(path.join('/somewhere-in-the-fs', pluginId));

    const plugin = new PluginClass({ app: myApp });

    this.enabledPlugins.push(plugin);
}

tldr: I'm stuck at the await import() part because obviously my plugin is not in my running node environment.

0 Answers
Related