Refactor LibKubernetesGenerator code structure (#1546)

* Refactor LibKubernetesGenerator code structure

* clean up comment out code

* No more locks

* clean up dep

* Update dependency paths in LibKubernetesGenerator.target
This commit is contained in:
Boshi Lian
2024-04-15 10:43:05 -07:00
committed by GitHub
parent de7ecf1da9
commit 3dae1cf299
24 changed files with 489 additions and 696 deletions

View File

@@ -6,22 +6,29 @@ namespace LibKubernetesGenerator
internal class ModelGenerator
{
private readonly ClassNameHelper classNameHelper;
private readonly ScriptObjectFactory scriptObjectFactory;
public ModelGenerator(ClassNameHelper classNameHelper)
public ModelGenerator(ClassNameHelper classNameHelper, ScriptObjectFactory scriptObjectFactory)
{
this.classNameHelper = classNameHelper;
this.scriptObjectFactory = scriptObjectFactory;
}
public void Generate(OpenApiDocument swagger, IncrementalGeneratorPostInitializationContext context)
{
var sc = scriptObjectFactory.CreateScriptObject();
foreach (var kv in swagger.Definitions)
{
var def = kv.Value;
var clz = classNameHelper.GetClassNameForSchemaDefinition(def);
context.RenderToContext(
"Model.cs.template",
new { clz, def, properties = def.Properties.Values },
$"Models_{clz}.g.cs");
sc.SetValue("clz", clz, true);
sc.SetValue("def", def, true);
sc.SetValue("properties", def.Properties.Values, true);
context.RenderToContext("Model.cs.template", sc, $"Models_{clz}.g.cs");
}
}
}