public static void GenerateTS(SwaggerDocument document, ApiClientDefinition definition, bool promptOnFileOverwrite) { var className = Path.GetFileNameWithoutExtension(definition.TypescriptClient); var settings = new SwaggerToTypeScriptClientGeneratorSettings() { Template = TypeScriptTemplate.Fetch, OperationNameGenerator = new CustomOperationNameGenerator(), GenerateOptionalParameters = true, UseTransformOptionsMethod = true, ClientBaseClass = "ClientBase", TypeScriptGeneratorSettings = { PropertyNameGenerator = new CustomPropertyNameGenerator(c => c), NullValue = TypeScriptNullValue.Null } }; if (definition.IsSingleClient) { // set the class name only when Swagger generates one client, otherwise all classes would have the same name settings.ClassName = className; } settings.TypeScriptGeneratorSettings.TemplateFactory = new DotvvmClientTemplateFactory(settings.CodeGeneratorSettings, new[] { typeof(TypeScriptGeneratorSettings).Assembly, typeof(SwaggerToTypeScriptClientGeneratorSettings).Assembly }); var resolver = new TypeScriptTypeResolver(settings.TypeScriptGeneratorSettings); var generator = new DotvvmSwaggerToTypeScriptClientGenerator(document, settings, resolver); var ts = generator.GenerateFile(); var baseClass = definition.CreateBaseClass(); ts = definition.WrapInNamespace(ts, baseClass); FileSystemHelpers.WriteFile(definition.TypescriptClient, ts, promptOnFileOverwrite); if (definition.CompileTypescript) { Process.Start(new ProcessStartInfo() { FileName = "tsc", Arguments = definition.TypescriptClient, UseShellExecute = true, CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden }).WaitForExit(); } }
public static void GenerateTS(SwaggerDocument document, ApiClientDefinition definition) { var settings = new SwaggerToTypeScriptClientGeneratorSettings() { Template = TypeScriptTemplate.Fetch, OperationNameGenerator = new CustomOperationNameGenerator(), GenerateOptionalParameters = true, UseTransformOptionsMethod = true, ClientBaseClass = "ClientBase", TypeScriptGeneratorSettings = { PropertyNameGenerator = new CustomPropertyNameGenerator(c => c), NullValue = TypeScriptNullValue.Null } }; settings.TypeScriptGeneratorSettings.TemplateFactory = new DotvvmClientTemplateFactory(settings.CodeGeneratorSettings, new[] { typeof(TypeScriptGeneratorSettings).Assembly, typeof(SwaggerToTypeScriptClientGeneratorSettings).Assembly }); var resolver = new TypeScriptTypeResolver(settings.TypeScriptGeneratorSettings); var generator = new DotvvmSwaggerToTypeScriptClientGenerator(document, settings, resolver); var ts = generator.GenerateFile(); var baseClass = definition.CreateBaseClass(); ts = definition.WrapInNamespace(ts, baseClass); File.WriteAllText(definition.TypescriptClient, ts); if (definition.CompileTypescript) { Process.Start(new ProcessStartInfo() { FileName = "tsc", Arguments = definition.TypescriptClient, UseShellExecute = true, CreateNoWindow = true, WindowStyle = ProcessWindowStyle.Hidden }).WaitForExit(); } }