Restructure solution layout by module
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Docs CI / lint-and-preview (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Docs CI / lint-and-preview (push) Has been cancelled
				
			This commit is contained in:
		| @@ -1,48 +1,48 @@ | ||||
| using System.Collections.Immutable; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
| using NJsonSchema; | ||||
| using NJsonSchema.Generation; | ||||
| using NJsonSchema.Generation.SystemTextJson; | ||||
| using Newtonsoft.Json; | ||||
| using StellaOps.Scheduler.Models; | ||||
|  | ||||
| var output = args.Length switch | ||||
| { | ||||
|     0 => Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..", "..", "..", "docs", "schemas")), | ||||
|     1 => Path.GetFullPath(args[0]), | ||||
|     _ => throw new ArgumentException("Usage: dotnet run --project tools/PolicySchemaExporter -- [outputDirectory]") | ||||
| }; | ||||
|  | ||||
| Directory.CreateDirectory(output); | ||||
|  | ||||
| var generatorSettings = new SystemTextJsonSchemaGeneratorSettings | ||||
| { | ||||
|     SchemaType = SchemaType.JsonSchema, | ||||
|     DefaultReferenceTypeNullHandling = ReferenceTypeNullHandling.NotNull, | ||||
|     SerializerOptions = new JsonSerializerOptions | ||||
|     { | ||||
|         PropertyNamingPolicy = JsonNamingPolicy.CamelCase, | ||||
|         DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, | ||||
|     }, | ||||
| }; | ||||
|  | ||||
| var generator = new JsonSchemaGenerator(generatorSettings); | ||||
|  | ||||
| var exports = ImmutableArray.Create( | ||||
|     (FileName: "policy-run-request.schema.json", Type: typeof(PolicyRunRequest)), | ||||
|     (FileName: "policy-run-status.schema.json", Type: typeof(PolicyRunStatus)), | ||||
|     (FileName: "policy-diff-summary.schema.json", Type: typeof(PolicyDiffSummary)), | ||||
|     (FileName: "policy-explain-trace.schema.json", Type: typeof(PolicyExplainTrace)) | ||||
| ); | ||||
|  | ||||
| foreach (var export in exports) | ||||
| { | ||||
|     var schema = generator.Generate(export.Type); | ||||
|     schema.Title = export.Type.Name; | ||||
|     schema.AllowAdditionalProperties = false; | ||||
|  | ||||
|     var outputPath = Path.Combine(output, export.FileName); | ||||
|     await File.WriteAllTextAsync(outputPath, schema.ToJson(Formatting.Indented) + Environment.NewLine); | ||||
|     Console.WriteLine($"Wrote {outputPath}"); | ||||
| } | ||||
| using System.Collections.Immutable; | ||||
| using System.Text.Json; | ||||
| using System.Text.Json.Serialization; | ||||
| using NJsonSchema; | ||||
| using NJsonSchema.Generation; | ||||
| using NJsonSchema.Generation.SystemTextJson; | ||||
| using Newtonsoft.Json; | ||||
| using StellaOps.Scheduler.Models; | ||||
|  | ||||
| var output = args.Length switch | ||||
| { | ||||
|     0 => Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..", "..", "..", "docs", "schemas")), | ||||
|     1 => Path.GetFullPath(args[0]), | ||||
|     _ => throw new ArgumentException("Usage: dotnet run --project tools/PolicySchemaExporter -- [outputDirectory]") | ||||
| }; | ||||
|  | ||||
| Directory.CreateDirectory(output); | ||||
|  | ||||
| var generatorSettings = new SystemTextJsonSchemaGeneratorSettings | ||||
| { | ||||
|     SchemaType = SchemaType.JsonSchema, | ||||
|     DefaultReferenceTypeNullHandling = ReferenceTypeNullHandling.NotNull, | ||||
|     SerializerOptions = new JsonSerializerOptions | ||||
|     { | ||||
|         PropertyNamingPolicy = JsonNamingPolicy.CamelCase, | ||||
|         DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, | ||||
|     }, | ||||
| }; | ||||
|  | ||||
| var generator = new JsonSchemaGenerator(generatorSettings); | ||||
|  | ||||
| var exports = ImmutableArray.Create( | ||||
|     (FileName: "policy-run-request.schema.json", Type: typeof(PolicyRunRequest)), | ||||
|     (FileName: "policy-run-status.schema.json", Type: typeof(PolicyRunStatus)), | ||||
|     (FileName: "policy-diff-summary.schema.json", Type: typeof(PolicyDiffSummary)), | ||||
|     (FileName: "policy-explain-trace.schema.json", Type: typeof(PolicyExplainTrace)) | ||||
| ); | ||||
|  | ||||
| foreach (var export in exports) | ||||
| { | ||||
|     var schema = generator.Generate(export.Type); | ||||
|     schema.Title = export.Type.Name; | ||||
|     schema.AllowAdditionalProperties = false; | ||||
|  | ||||
|     var outputPath = Path.Combine(output, export.FileName); | ||||
|     await File.WriteAllTextAsync(outputPath, schema.ToJson(Formatting.Indented) + Environment.NewLine); | ||||
|     Console.WriteLine($"Wrote {outputPath}"); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user