diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-08-30 13:44:59 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-08-30 13:44:59 +0100 |
| commit | f6bdaa0381cfe762a0723085d666dce8eaf4434a (patch) | |
| tree | 57665bd78561e59c9eedfa40ab6dd534c57f0aae /src/main/java | |
| parent | 93c7437d22224ac72818a4cd4ed4d9beeedaac79 (diff) | |
Support singleton structs in typescript-types
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()), |
