summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-08-30 11:17:45 +0100
committerMichael Williamson <mike@zwobble.org>2026-08-30 11:17:45 +0100
commita7d5133ac7cc82e3826f90d2e5f1ca5cd3f08676 (patch)
treeda8fa4c132bef9bc34788c2dd817bf7b13c87767 /src/main/java
parent9de4242330fe137133327533f24073613da8d201 (diff)
Export generated TypeScript classes in typescript-types
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/typescripttypes/TypescriptTypesGenerator.java17
1 files changed, 10 insertions, 7 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 c737d1c..68fe74d 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
@@ -77,13 +77,13 @@ public class TypescriptTypesGenerator implements Generator {
.toList();
var statements = namespace.body().stream()
- .map(statement -> generateNamespaceStatement(statement))
+ .flatMap(statement -> generateNamespaceStatement(statement).stream())
.toList();
return new TypescriptModule(typescriptModuleName, statements);
}
- private TypescriptStatement generateNamespaceStatement(TypedNamespaceStatementNode statement) {
+ private List<TypescriptStatement> generateNamespaceStatement(TypedNamespaceStatementNode statement) {
switch (statement) {
case TypedEnumDefinitionNode _ -> {
throw new UnsupportedOperationException("TODO");
@@ -103,7 +103,7 @@ public class TypescriptTypesGenerator implements Generator {
}
}
- private TypescriptStatement generateStructDefinition(TypedStructDefinitionNode structDefinition) {
+ private List<TypescriptStatement> generateStructDefinition(TypedStructDefinitionNode structDefinition) {
var typescriptTypeName = this.typescriptGenerator.generateTypeName(structDefinition.name());
var body = new ArrayList<TypescriptClassElement>();
@@ -135,10 +135,13 @@ public class TypescriptTypesGenerator implements Generator {
.toList()
));
- return new TypescriptClassDeclaration(
- typescriptTypeName,
- body,
- structDefinition.docComment()
+ return List.of(
+ new TypescriptClassDeclaration(
+ typescriptTypeName,
+ body,
+ structDefinition.docComment()
+ ),
+ new TypescriptExportNamesStatement(List.of(typescriptTypeName))
);
}
}