From f6bdaa0381cfe762a0723085d666dce8eaf4434a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 30 Aug 2026 13:44:59 +0100 Subject: Support singleton structs in typescript-types --- .../typescripttypes/TypescriptTypesGenerator.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/main/java') 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()), -- cgit v1.2.3