* 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
35 lines
1.1 KiB
C#
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");
|
|
}
|
|
}
|
|
}
|