Files
api-generator/Generator/Mappers/SettingsMapper.cs
2025-10-12 13:54:51 +02:00

76 lines
2.4 KiB
C#

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),
};
}