Files
api-generator/Generator/Mappers/JavascriptMapper.cs
2025-10-11 13:08:09 +02:00

36 lines
1.5 KiB
C#

using Core;
using Core.Dto.Settings;
using Core.Settings;
using Generator.DataSource.Settings;
namespace Generator.Mappers;
public static class JavascriptMapper
{
public static JavascriptConfig Map(this JavascriptConfigDto dto, ConfigManager configManager, ISpecFile file)
{
var apiFolder = configManager.GetGeneral().ApiFolder;
var specFolder = file.Folder;
var specName = file.Name;
var templatesConfig = configManager.Templates;
var openApiConfig = configManager.OpenApi.Map(configManager, specFolder, specName);
var generationFolder = configManager.GetGeneral().GenerationFolder;
var baseConfig = configManager.GetBase();
return new JavascriptConfig
{
LocalRoot = baseConfig.LocalRoot,
DockerRoot = baseConfig.DockerRoot,
GenerationImage = configManager.DockerImages.OpenApiGeneratorImage,
BuildImage = configManager.DockerImages.JavascriptImage,
Invite = baseConfig.Invite,
ClientFolder = generationFolder.ConcatenateWith([specFolder, dto.Folder, specName]),
SpecFile = apiFolder.ConcatenateWith([specFolder, $"{specName}{openApiConfig.SpecExtension}"]),
PackageName = file.NpmPackage,
OpenApiVersion = file.Version,
Registry = configManager.Publish.NpmRegistry,
TemplateFolder = new Location(templatesConfig.Folder),
OpenApi = configManager.OpenApi.Map(configManager, specFolder, specName).Folder
};
}
}