using Core; using Core.Dto; using Core.Dto.Settings; using Core.Settings; using Generator.DataSource.Settings; namespace Generator.Mappers; public static class SettingsMapper { public static DefaultArgumentsConfig Map(this DefaultArgumentsConfigDto dto, ArgumentsDto args) { var identifier = args.SpecName ?? dto.SpecIdentifier; return new DefaultArgumentsConfig { SpecIdentifier = identifier, }; } public static DockerImagesConfig Map(this DockerImagesConfigDto dto) => new() { JavaImage = dto.MavenImage, DotnetSdkImage = dto.DotnetSdkImage, OpenApiGeneratorImage = dto.OpenApiGeneratorImage, JavascriptImage = dto.JavascriptImage, }; public static BaseConfig Map(this EnvironmentConfigDto dto) => new() { Invite = dto.Invite, LocalRoot = new Location(dto.LocalRoot), DockerRoot = new Location(dto.DockerRoot), TemplateFolder = null, }; public static PublishConfig Map(this PublishConfigDto dto) => new() { MavenRegistry = dto.MavenRegistry, NpmRegistry = dto.NpmRegistry, NugetRegistry = dto.NugetRegistry }; public static OpenApiConfig Map(this OpenApiConfigDto dto, ConfigManager configManager, string folder, string name) { var apiFolder = configManager.GetGeneral().ApiFolder; var config = new OpenApiConfig { Folder = new Location(dto.OutputFolder), GeneratorConfigFile = new Location(dto.GeneratorConfigFile), GeneratorIgnoreFile = new Location(dto.GeneratorIgnoreFile), SpecFile = apiFolder.ConcatenateWith([folder, $"{name}{dto.SpecExtension}"]), SpecConfig = apiFolder.ConcatenateWith([folder, $"{name}{dto.ConfigIdentifier}{dto.ConfigExtension}"]), SpecExtension = dto.SpecExtension, SchemasIdentifier = dto.SchemasIdentifier, ConfigIdentifier = $"{dto.ConfigIdentifier}{dto.ConfigExtension}", }; return config; } public static GeneralConfig Map(this GeneralConfigDto dto) => new() { ApiFolder = new Location(dto.ApiFolder), GenerationFolder = new Location(dto.OutputFolder), }; }