Skip to content

Commit ad2fa4e

Browse files
committed
chore: skip serializing members with eventHeader trait
1 parent 0c8d05c commit ad2fa4e

File tree

4 files changed

+21
-10
lines changed

4 files changed

+21
-10
lines changed

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/AwsRestXml.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,6 @@ protected void serializeInputEventDocumentPayload(
165165
Shape payloadShape
166166
) {
167167
TypeScriptWriter writer = context.getWriter();
168-
Model model = context.getModel();
169-
170168
if (payloadShape instanceof StructureShape || payloadShape instanceof UnionShape) {
171169
SymbolProvider symbolProvider = context.getSymbolProvider();
172170
Symbol symbol = symbolProvider.toSymbol(payloadShape);

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/JsonShapeSerVisitor.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import software.amazon.smithy.model.shapes.Shape;
2929
import software.amazon.smithy.model.shapes.StructureShape;
3030
import software.amazon.smithy.model.shapes.UnionShape;
31+
import software.amazon.smithy.model.traits.EventHeaderTrait;
3132
import software.amazon.smithy.model.traits.IdempotencyTokenTrait;
3233
import software.amazon.smithy.model.traits.JsonNameTrait;
3334
import software.amazon.smithy.model.traits.SparseTrait;
@@ -138,6 +139,9 @@ public void serializeStructure(GenerationContext context, StructureShape shape)
138139
// Use a TreeMap to sort the members.
139140
Map<String, MemberShape> members = new TreeMap<>(shape.getAllMembers());
140141
members.forEach((memberName, memberShape) -> {
142+
if (memberShape.hasTrait(EventHeaderTrait.class)) {
143+
return;
144+
}
141145
String locationName = memberNameStrategy.apply(memberShape, memberName);
142146
Shape target = context.getModel().expectShape(memberShape.getTarget());
143147
String inputLocation = "input." + memberName;
@@ -170,12 +174,15 @@ public void serializeUnion(GenerationContext context, UnionShape shape) {
170174
// Use a TreeMap to sort the members.
171175
Map<String, MemberShape> members = new TreeMap<>(shape.getAllMembers());
172176
members.forEach((memberName, memberShape) -> {
173-
String locationName = memberNameStrategy.apply(memberShape, memberName);
174-
Shape target = model.expectShape(memberShape.getTarget());
175-
// Dispatch to the input value provider for any additional handling.
176-
writer.write("$L: value => ({ $S: $L }),", memberName, locationName,
177-
target.accept(getMemberVisitor("value")));
178-
});
177+
if (memberShape.hasTrait(EventHeaderTrait.class)) {
178+
return;
179+
}
180+
String locationName = memberNameStrategy.apply(memberShape, memberName);
181+
Shape target = model.expectShape(memberShape.getTarget());
182+
// Dispatch to the input value provider for any additional handling.
183+
writer.write("$L: value => ({ $S: $L }),", memberName, locationName,
184+
target.accept(getMemberVisitor("value")));
185+
});
179186
writer.write("_: (name, value) => ({ name: value } as any)");
180187
});
181188
}

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/RestJsonProtocolGenerator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,6 @@ protected void serializeInputEventDocumentPayload(
193193
Shape payloadShape
194194
) {
195195
TypeScriptWriter writer = context.getWriter();
196-
Model model = context.getModel();
197196

198197
if (payloadShape instanceof StructureShape || payloadShape instanceof UnionShape) {
199198
SymbolProvider symbolProvider = context.getSymbolProvider();

codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/XmlShapeSerVisitor.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import software.amazon.smithy.model.shapes.Shape;
2828
import software.amazon.smithy.model.shapes.StructureShape;
2929
import software.amazon.smithy.model.shapes.UnionShape;
30+
import software.amazon.smithy.model.traits.EventHeaderTrait;
3031
import software.amazon.smithy.model.traits.SparseTrait;
3132
import software.amazon.smithy.model.traits.TimestampFormatTrait;
3233
import software.amazon.smithy.model.traits.TimestampFormatTrait.Format;
@@ -200,8 +201,11 @@ protected void serializeStructure(GenerationContext context, StructureShape shap
200201
// Serialize every member of the structure if present.
201202
Map<String, MemberShape> members = shape.getAllMembers();
202203
members.forEach((memberName, memberShape) -> {
203-
String inputLocation = "input." + memberName;
204+
if (memberShape.hasTrait(EventHeaderTrait.class)) {
205+
return;
206+
}
204207

208+
String inputLocation = "input." + memberName;
205209
// Handle if the member is an idempotency token that should be auto-filled.
206210
AwsProtocolUtils.writeIdempotencyAutofill(context, memberShape, inputLocation);
207211

@@ -318,6 +322,9 @@ protected void serializeUnion(GenerationContext context, UnionShape shape) {
318322
writer.openBlock("$L.visit(input, {", "});", shape.getId().getName(serviceShape), () -> {
319323
Map<String, MemberShape> members = shape.getAllMembers();
320324
members.forEach((memberName, memberShape) -> {
325+
if (memberShape.hasTrait(EventHeaderTrait.class)) {
326+
return;
327+
}
321328
writer.openBlock("$L: value => {", "},", memberName, () -> {
322329
serializeNamedMember(context, memberName, memberShape, () -> "value");
323330
});

0 commit comments

Comments
 (0)