using System.Text.Json; using Microsoft.Extensions.ObjectPool; using StitchATon.Services; using StitchATon.Utility; var builder = WebApplication.CreateBuilder( args ); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var path = Environment.GetEnvironmentVariable( "ASSET_PATH_RO" ); if( path == null ) throw new ArgumentException("Please supply the directory path on ASSET_PATH_RO env var"); // Image Loader builder.Services.AddSingleton( new ImageProvider.Config( path, 720, 55, 31) ); builder.Services.AddSingleton(); // FIFO named pipe pool builder.Services.AddSingleton>( new DefaultObjectPool( new DefaultPooledObjectPolicy(), 10 ) ); builder.Services.AddControllers().AddJsonOptions( options => { options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower; options.JsonSerializerOptions.WriteIndented = true; } ); builder.Logging.AddConsole(); var app = builder.Build(); // Configure the HTTP request pipeline. if( app.Environment.IsDevelopment() ) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseCors(); app.UseRouting(); app.MapControllers(); app.Run();