From bfc98eb886211cbe7be00cee8db8e7ca1e6e13f5 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 27 Sep 2026 10:50:05 +0100 Subject: Support type-only exports in TypeScript AST --- .../compiler/output/lang/typescript/TypescriptWriterTests.java | 7 ++++++- .../output/lang/typescript/ast/TypescriptNamedExportMatcher.java | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src/test/java/org') diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java index 8e7daa4..4963e09 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriterTests.java @@ -223,11 +223,12 @@ public class TypescriptWriterTests { var typescript = TypescriptExportNamesStatement.arbitrary() .addExport(export(id("x"))) .addExport(export(id("y"))) + .addExport(exportType(id("z"))) .build(); var string = write(writer -> writer.writeStatement(typescript)); - assertThat(string, equalTo("export {x, y};")); + assertThat(string, equalTo("export {x, y, type z};")); } // === Expression statements === @@ -600,6 +601,10 @@ public class TypescriptWriterTests { return TypescriptNamedExport.arbitrary().withExportName(name).build(); } + private static TypescriptNamedExport exportType(TypescriptIdentifier name) { + return TypescriptNamedExport.arbitrary().withExportName(name).withTypeOnly(true).build(); + } + private static TypescriptIdentifier id(String name) { return TypescriptIdentifier.of(name); } diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptNamedExportMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptNamedExportMatcher.java index b5d514e..93612fe 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptNamedExportMatcher.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/ast/TypescriptNamedExportMatcher.java @@ -36,6 +36,12 @@ public final class TypescriptNamedExportMatcher implements org.zwobble.precisely return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher(submatchers); } + public org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher withTypeOnly(org.zwobble.precisely.Matcher typeOnly) { + var submatchers = new java.util.ArrayList>(this.submatchers); + submatchers.add(org.zwobble.precisely.Matchers.has("typeOnly", org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExport::typeOnly, (org.zwobble.precisely.Matcher) typeOnly)); + return new org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher(submatchers); + } + // Custom area start: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher body // Custom area end: org.zwobble.hobgoblin.compiler.output.lang.typescript.ast.TypescriptNamedExportMatcher body } -- cgit v1.2.3