Files
csharp/gen/LibKubernetesGenerator/ModelExtGenerator.cs
Boshi Lian 250a45741e move all generated code to c# source generator (#756)
* remove the dependency of unprocessed swagger file

* all code generator

* good bye generated code

* remove generator cmd from sln

* eliminate generated folder

* fix multi target build

* disable dotnet fmt due to cannot load lib generator

* fix race

* fix race for multi target
2021-12-22 17:16:44 -08:00

35 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.CodeAnalysis;
using NSwag;
using Nustache.Core;
namespace LibKubernetesGenerator
{
internal class ModelExtGenerator
{
private readonly ClassNameHelper classNameHelper;
public ModelExtGenerator(ClassNameHelper classNameHelper)
{
this.classNameHelper = classNameHelper;
}
public void Generate(OpenApiDocument swagger, GeneratorExecutionContext context)
{
// Generate the interface declarations
var skippedTypes = new HashSet<string> { "V1WatchEvent" };
var definitions = swagger.Definitions.Values
.Where(
d => d.ExtensionData != null
&& d.ExtensionData.ContainsKey("x-kubernetes-group-version-kind")
&& !skippedTypes.Contains(classNameHelper.GetClassName(d)));
context.RenderToContext("ModelExtensions.cs.template", definitions, "ModelExtensions.g.cs");
}
}
}