Finished compile time plugin loading. Refactored plugin loading. Extended build helper script

This commit is contained in:
2025-05-13 20:48:50 +02:00
parent 8126250d1a
commit a579dd4759
28 changed files with 1169 additions and 741 deletions

View File

@@ -1,24 +1,20 @@
using Microsoft.OpenApi.Models;
using Moonlight.ApiServer.Configuration;
using Moonlight.ApiServer.Database;
using Moonlight.ApiServer.Interfaces.Startup;
using Moonlight.ApiServer.Plugins;
namespace Moonlight.ApiServer.Implementations.Startup;
[PluginStartup]
public class CoreStartup : IPluginStartup
{
private readonly AppConfiguration Configuration;
public CoreStartup(AppConfiguration configuration)
{
Configuration = configuration;
}
public Task BuildApplication(IHostApplicationBuilder builder)
public Task BuildApplication(IServiceProvider serviceProvider, IHostApplicationBuilder builder)
{
var configuration = serviceProvider.GetRequiredService<AppConfiguration>();
#region Api Docs
if (Configuration.Development.EnableApiDocs)
if (configuration.Development.EnableApiDocs)
{
builder.Services.AddEndpointsApiExplorer();
@@ -53,14 +49,16 @@ public class CoreStartup : IPluginStartup
return Task.CompletedTask;
}
public Task ConfigureApplication(IApplicationBuilder app)
public Task ConfigureApplication(IServiceProvider serviceProvider, IApplicationBuilder app)
{
return Task.CompletedTask;
}
public Task ConfigureEndpoints(IEndpointRouteBuilder routeBuilder)
public Task ConfigureEndpoints(IServiceProvider serviceProvider, IEndpointRouteBuilder routeBuilder)
{
if(Configuration.Development.EnableApiDocs)
var configuration = serviceProvider.GetRequiredService<AppConfiguration>();
if(configuration.Development.EnableApiDocs)
routeBuilder.MapSwagger("/api/swagger/{documentName}");
return Task.CompletedTask;