using Iceshrimp.Backend.Controllers.Renderers.ActivityPub; using Iceshrimp.Backend.Core.Configuration; using Iceshrimp.Backend.Core.Federation.ActivityPub; using Iceshrimp.Backend.Core.Federation.WebFinger; using Iceshrimp.Backend.Core.Services; namespace Iceshrimp.Backend.Core.Helpers; public static class ServiceExtensions { public static void AddServices(this IServiceCollection services) { // Transient = instantiated per request and class //services.AddTransient(); // Scoped = instantiated per request services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); // Singleton = instantiated once across application lifetime services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); } public static void ConfigureServices(this IServiceCollection services, IConfiguration configuration) { //TODO: fail if config doesn't parse correctly / required things are missing services.Configure(configuration); services.Configure(configuration.GetSection("Instance")); services.Configure(configuration.GetSection("Database")); } }