Improved css build and initialization of frontend plugins #19
@@ -5,6 +5,13 @@ namespace Moonlight.Frontend;
|
||||
|
||||
public abstract class MoonlightPlugin : IPluginModule
|
||||
{
|
||||
protected MoonlightPlugin[] Plugins { get; private set; }
|
||||
|
||||
public void Initialize(MoonlightPlugin[] plugins)
|
||||
{
|
||||
Plugins = plugins;
|
||||
}
|
||||
|
||||
public virtual void PreBuild(WebAssemblyHostBuilder builder){}
|
||||
public virtual void PostBuild(WebAssemblyHost application){}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
|
||||
using SimplePlugin.Abstractions;
|
||||
|
||||
namespace Moonlight.Frontend.Startup;
|
||||
|
||||
public interface IAppStartup : IPluginModule
|
||||
{
|
||||
public void PreBuild(WebAssemblyHostBuilder builder);
|
||||
public void PostBuild(WebAssemblyHost application);
|
||||
}
|
||||
@@ -10,11 +10,17 @@ public static class StartupHandler
|
||||
|
||||
var builder = WebAssemblyHostBuilder.CreateDefault(args);
|
||||
|
||||
// Setting up context
|
||||
foreach (var plugin in plugins)
|
||||
plugin.Initialize(plugins);
|
||||
|
||||
// Stage 1: Pre Build
|
||||
foreach (var plugin in plugins)
|
||||
plugin.PreBuild(builder);
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Stage 2: Post Build
|
||||
foreach(var plugin in plugins)
|
||||
plugin.PostBuild(app);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user