diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java index 41b7a19..3d1f94f 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java @@ -118,8 +118,25 @@ public class TypescriptTypesGenerator implements Generator { )); } + if (structDefinition.fields().isEmpty()) { + body.add(new TypescriptClassFieldDeclaration( + TypescriptIdentifier.of("INSTANCE"), + TypescriptVisibility.PUBLIC, + true, + Optional.empty(), + Optional.of(new TypescriptNewCall( + new TypescriptRef(typescriptTypeName), + List.of() + )) + )); + } + + var constructorVisibility = structDefinition.fields().isPresent() + ? TypescriptVisibility.PUBLIC + : TypescriptVisibility.PRIVATE; + body.add(new TypescriptClassConstructor( - TypescriptVisibility.PUBLIC, + constructorVisibility, structDefinition.fields().orElse(List.of()).stream() .map(field -> new TypescriptParam( this.typescriptGenerator.generateFieldName(field.name()), |
