From dc7d56121033af35bfdbe22e945884262b1d4410 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 21 Sep 2026 21:02:55 +0100 Subject: Update imports in typescript-types to work with example 14 --- .../generators/typescripttypes/TypescriptTypesGenerator.java | 12 +++++++----- .../compiler/output/lang/typescript/TypescriptWriter.java | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) (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 dafb0d2..293143c 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 @@ -107,6 +107,12 @@ public class TypescriptTypesGenerator implements Generator { .map(requiredType -> { var exportName = this.typescriptGenerator.generateTypeName(requiredType.type().name()); + var moduleRoot = "./" + "../".repeat(namespace.namespaceName().parts().size() - 1); + var fromModule = moduleRoot + requiredType.type().namespaceName().parts().stream() + .map(part -> this.typescriptGenerator.generateModuleName(part).value()) + // TODO: handle extensions + .collect(Collectors.joining("/")) + ".ts"; + return new TypescriptImportDeclaration( List.of( new TypescriptNamedImport( @@ -114,11 +120,7 @@ public class TypescriptTypesGenerator implements Generator { requiredType.importName() ) ), - // TODO: handle imports from parent - "./" + requiredType.type().namespaceName().parts().stream() - .map(part -> this.typescriptGenerator.generateModuleName(part).value()) - // TODO: handle extensions - .collect(Collectors.joining("/")) + ".ts" + fromModule ); }) .toList(); diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriter.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriter.java index 34a6d99..18a2475 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriter.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/typescript/TypescriptWriter.java @@ -82,6 +82,7 @@ public class TypescriptWriter implements AutoCloseable { writeWithSeparator( importDeclaration.namedImports(), namedImport -> { + this.writer.write("type "); this.writeIdentifier(namedImport.exportName()); this.writer.write(" as "); this.writeIdentifier(namedImport.importName()); -- cgit v1.2.3