diff --git a/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/UnionGenerator.java b/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/UnionGenerator.java index d6cdf5dd839..63f9f4ef068 100644 --- a/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/UnionGenerator.java +++ b/smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/UnionGenerator.java @@ -92,10 +92,10 @@ * bear: (value: Bear) => T; * _: (name: string, value: any) => T; * } - * export function visit( + * export const visit = ( * value: Attacker, * visitor: Visitor - * ): T { + * ): T => { * if (value.lion !== undefined) return visitor.lion(value.lion); * if (value.tiger !== undefined) return visitor.tiger(value.tiger); * if (value.bear !== undefined) return visitor.bear(value.bear); @@ -193,10 +193,10 @@ private void writeVisitorType() { private void writeVisitorFunction() { // Create the visitor dispatcher for the union. - writer.write("export function visit(").indent(); + writer.write("export const visit = (").indent(); writer.write("value: $L,", symbol.getName()); writer.write("visitor: Visitor"); - writer.dedent().write("): T {").indent(); + writer.dedent().write("): T => {").indent(); for (MemberShape member : shape.getAllMembers().values()) { String memberName = symbolProvider.toMemberName(member); writer.write("if (value.${1L} !== undefined) return visitor.$1L(value.${1L});", memberName); diff --git a/smithy-typescript-codegen/src/test/java/software/amazon/smithy/typescript/codegen/UnionGeneratorTest.java b/smithy-typescript-codegen/src/test/java/software/amazon/smithy/typescript/codegen/UnionGeneratorTest.java index 6bdd058b651..370b1f02360 100644 --- a/smithy-typescript-codegen/src/test/java/software/amazon/smithy/typescript/codegen/UnionGeneratorTest.java +++ b/smithy-typescript-codegen/src/test/java/software/amazon/smithy/typescript/codegen/UnionGeneratorTest.java @@ -85,10 +85,10 @@ public void generatesTaggedUnions() { + " }")); // It generates the actual visitor function. - assertThat(output, containsString("export function visit(\n" + assertThat(output, containsString("export const visit = (\n" + " value: Example,\n" + " visitor: Visitor\n" - + " ): T {\n" + + " ): T => {\n" + " if (value.A !== undefined) return visitor.A(value.A);\n" + " if (value.B !== undefined) return visitor.B(value.B);\n" + " if (value.C !== undefined) return visitor.C(value.C);\n"