Skip to content

Commit fc0a09f

Browse files
author
Michael Baldwin
committed
Support generating required fields as not optional in TS
1 parent e8acb62 commit fc0a09f

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/Facility.CodeGen.JavaScript/JavaScriptGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -930,7 +930,7 @@ private static void WriteDto(CodeWriter code, ServiceDtoInfo dtoInfo, ServiceInf
930930
{
931931
code.WriteLineSkipOnce();
932932
WriteJsDoc(code, fieldInfo);
933-
code.WriteLine($"{fieldInfo.Name}?: {RenderFieldType(service.GetFieldType(fieldInfo)!)};");
933+
code.WriteLine($"{fieldInfo.Name}{(fieldInfo.IsRequired ? "" : "?")}: {RenderFieldType(service.GetFieldType(fieldInfo)!)};");
934934
}
935935
}
936936
}

tests/Facility.CodeGen.JavaScript.UnitTests/JavaScriptGeneratorTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,8 +344,8 @@ public void GenerateExampleApiTypeScript_DataPropertiesRequired()
344344

345345
var typesFile = result.Files.Single(f => f.Name == "testApiTypes.ts");
346346
Assert.That(typesFile.Text, Does.Contain("export interface IWidget {"));
347-
Assert.That(typesFile.Text, Does.Contain("id?: string;"));
348-
Assert.That(typesFile.Text, Does.Contain("name?: string;"));
347+
Assert.That(typesFile.Text, Does.Contain("id: string;"));
348+
Assert.That(typesFile.Text, Does.Contain("name: string;"));
349349
Assert.That(typesFile.Text, Does.Contain("price?: number;"));
350350
Assert.That(typesFile.Text, Does.Contain("}"));
351351
}

0 commit comments

Comments
 (0)