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