29 lines
801 B
C#
29 lines
801 B
C#
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
|
|
|
|
namespace Moonlight.Frontend;
|
|
|
|
public static class StartupHandler
|
|
{
|
|
public static async Task RunAsync(string[] args, MoonlightPlugin[] plugins)
|
|
{
|
|
Console.WriteLine($"Starting with: {string.Join(", ", plugins.Select(x => x.GetType().FullName))}");
|
|
|
|
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);
|
|
|
|
await app.RunAsync();
|
|
}
|
|
} |