Refactored plugin loading. Added project settings for packing

This commit is contained in:
2025-05-13 20:52:26 +02:00
parent d33e7bf295
commit 49f0a7c55e
8 changed files with 97 additions and 22 deletions

View File

@@ -1,30 +1,49 @@
using MoonCore.Extensions;
using Moonlight.ApiServer.Interfaces.Startup;
using Moonlight.ApiServer.Configuration;
using Moonlight.ApiServer.Models;
using Moonlight.ApiServer.Plugins;
using MoonlightServers.ApiServer.Database;
using MoonlightServers.ApiServer.Helpers;
namespace MoonlightServers.ApiServer.Startup;
[PluginStartup]
public class PluginStartup : IPluginStartup
{
public Task BuildApplication(IHostApplicationBuilder builder)
public Task BuildApplication(IServiceProvider serviceProvider, IHostApplicationBuilder builder)
{
// Scan the current plugin assembly for di services
builder.Services.AutoAddServices<PluginStartup>();
builder.Services.AddDbContext<ServersDataContext>();
// Configure authentication for the remote endpoints
builder.Services
.AddAuthentication()
.AddScheme<NodeAuthOptions, NodeAuthScheme>("nodeAuthentication", null);
var configuration = serviceProvider.GetRequiredService<AppConfiguration>();
if (configuration.Client.Enable)
{
builder.Services.AddSingleton(new FrontendConfigurationOption()
{
Scripts =
[
"js/XtermBlazor.min.js",
"js/addon-fit.js",
"js/moonlightServers.js"
],
Styles = ["css/XtermBlazor.min.css"]
});
}
return Task.CompletedTask;
}
public Task ConfigureApplication(IApplicationBuilder app)
=> Task.CompletedTask;
public Task ConfigureApplication(IServiceProvider serviceProvider, IApplicationBuilder app)
=> Task.CompletedTask;
public Task ConfigureEndpoints(IEndpointRouteBuilder routeBuilder)
public Task ConfigureEndpoints(IServiceProvider serviceProvider, IEndpointRouteBuilder routeBuilder)
=> Task.CompletedTask;
}