Skip to content

Commit 5f820e6

Browse files
authored
chore: remove variables from xml serializeMap (#1174)
1 parent 5e38f23 commit 5f820e6

File tree

3 files changed

+20
-34
lines changed

3 files changed

+20
-34
lines changed

clients/client-s3-control/protocols/Aws_restXml.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2616,8 +2616,7 @@ const serializeAws_restXmlS3UserMetadata = (
26162616
input: { [key: string]: string },
26172617
context: __SerdeContext
26182618
): any => {
2619-
const collectedNodes: any = [];
2620-
Object.keys(input).forEach(key => {
2619+
return Object.keys(input).map(key => {
26212620
const entryNode = new __XmlNode("entry");
26222621
const keyNode = new __XmlNode("NonEmptyMaxLength1024String")
26232622
.addChildNode(new __XmlText(key))
@@ -2627,9 +2626,8 @@ const serializeAws_restXmlS3UserMetadata = (
26272626
new __XmlText(input[key])
26282627
);
26292628
entryNode.addChildNode(node.withName("value"));
2630-
collectedNodes.push(entryNode);
2629+
return entryNode;
26312630
});
2632-
return collectedNodes;
26332631
};
26342632

26352633
const serializeAws_restXmlVpcConfiguration = (

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

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,8 @@ protected void serializeMap(GenerationContext context, MapShape shape) {
102102
Model model = context.getModel();
103103
writer.addImport("XmlNode", "__XmlNode", "@aws-sdk/xml-builder");
104104

105-
// Set up a location to store all of the child node(s).
106-
writer.write("const collectedNodes: any = [];");
107105
// Use the keys as an iteration point to dispatch to the input value providers.
108-
writer.openBlock("Object.keys(input).forEach(key => {", "});", () -> {
106+
writer.openBlock("return Object.keys(input).map(key => {", "});", () -> {
109107
// Prepare a containing node for each entry's k/v pair.
110108
writer.write("const entryNode = new __XmlNode(\"entry\");");
111109

@@ -132,25 +130,23 @@ protected void serializeMap(GenerationContext context, MapShape shape) {
132130
writer.write("const node = $L;", valueTarget.accept(getMemberVisitor("input[key]")));
133131
// Handle proper unwrapping of target nodes.
134132
if (serializationReturnsArray(valueTarget)) {
135-
writer.write("const container = new __XmlNode($S);", valueName);
136-
writer.openBlock("for (let index in node) {", "}", () -> {
137-
writer.write("const workingNode = node[index];");
138-
// Add @xmlNamespace value of the value member.
139-
AwsProtocolUtils.writeXmlNamespace(context, valueMember, "workingNode");
140-
writer.write("container.addChildNode(workingNode);");
133+
writer.openBlock("entryNode.addChildNode(", ");", () -> {
134+
writer.openBlock("node.reduce((acc: __XmlNode, workingNode: any) => {", "}", () -> {
135+
// Add @xmlNamespace value of the value member.
136+
AwsProtocolUtils.writeXmlNamespace(context, valueMember, "workingNode");
137+
writer.write("acc.addChildNode(workingNode);");
138+
writer.write("return acc;");
139+
});
140+
writer.write(", new __XmlNode($S));", valueName);
141141
});
142-
writer.write("entryNode.addChildNode(container);");
143142
} else {
144143
// Add @xmlNamespace value of the target member.
145144
AwsProtocolUtils.writeXmlNamespace(context, valueMember, "node");
146145
writer.write("entryNode.addChildNode(node.withName($S));", valueName);
147146
}
148147

149-
// Add the entry to the collection.
150-
writer.write("collectedNodes.push(entryNode);");
148+
writer.write("return entryNode;");
151149
});
152-
153-
writer.write("return collectedNodes;");
154150
}
155151

156152
@Override

protocol_tests/aws-restxml/protocols/Aws_restXml.ts

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4115,8 +4115,7 @@ const serializeAws_restXmlFlattenedXmlMapWithXmlNameInputOutputMap = (
41154115
input: { [key: string]: string },
41164116
context: __SerdeContext
41174117
): any => {
4118-
const collectedNodes: any = [];
4119-
Object.keys(input).forEach(key => {
4118+
return Object.keys(input).map(key => {
41204119
const entryNode = new __XmlNode("entry");
41214120
const keyNode = new __XmlNode("String")
41224121
.addChildNode(new __XmlText(key))
@@ -4126,9 +4125,8 @@ const serializeAws_restXmlFlattenedXmlMapWithXmlNameInputOutputMap = (
41264125
new __XmlText(input[key])
41274126
);
41284127
entryNode.addChildNode(node.withName("V"));
4129-
collectedNodes.push(entryNode);
4128+
return entryNode;
41304129
});
4131-
return collectedNodes;
41324130
};
41334131

41344132
const serializeAws_restXmlNestedPayload = (
@@ -4296,36 +4294,32 @@ const serializeAws_restXmlXmlMapsInputOutputMap = (
42964294
input: { [key: string]: GreetingStruct },
42974295
context: __SerdeContext
42984296
): any => {
4299-
const collectedNodes: any = [];
4300-
Object.keys(input).forEach(key => {
4297+
return Object.keys(input).map(key => {
43014298
const entryNode = new __XmlNode("entry");
43024299
const keyNode = new __XmlNode("String")
43034300
.addChildNode(new __XmlText(key))
43044301
.withName("key");
43054302
entryNode.addChildNode(keyNode);
43064303
const node = serializeAws_restXmlGreetingStruct(input[key], context);
43074304
entryNode.addChildNode(node.withName("value"));
4308-
collectedNodes.push(entryNode);
4305+
return entryNode;
43094306
});
4310-
return collectedNodes;
43114307
};
43124308

43134309
const serializeAws_restXmlXmlMapsXmlNameInputOutputMap = (
43144310
input: { [key: string]: GreetingStruct },
43154311
context: __SerdeContext
43164312
): any => {
4317-
const collectedNodes: any = [];
4318-
Object.keys(input).forEach(key => {
4313+
return Object.keys(input).map(key => {
43194314
const entryNode = new __XmlNode("entry");
43204315
const keyNode = new __XmlNode("String")
43214316
.addChildNode(new __XmlText(key))
43224317
.withName("Attribute");
43234318
entryNode.addChildNode(keyNode);
43244319
const node = serializeAws_restXmlGreetingStruct(input[key], context);
43254320
entryNode.addChildNode(node.withName("Setting"));
4326-
collectedNodes.push(entryNode);
4321+
return entryNode;
43274322
});
4328-
return collectedNodes;
43294323
};
43304324

43314325
const serializeAws_restXmlXmlNamespaceNested = (
@@ -4389,8 +4383,7 @@ const serializeAws_restXmlFooEnumMap = (
43894383
input: { [key: string]: FooEnum | string },
43904384
context: __SerdeContext
43914385
): any => {
4392-
const collectedNodes: any = [];
4393-
Object.keys(input).forEach(key => {
4386+
return Object.keys(input).map(key => {
43944387
const entryNode = new __XmlNode("entry");
43954388
const keyNode = new __XmlNode("String")
43964389
.addChildNode(new __XmlText(key))
@@ -4400,9 +4393,8 @@ const serializeAws_restXmlFooEnumMap = (
44004393
new __XmlText(input[key])
44014394
);
44024395
entryNode.addChildNode(node.withName("value"));
4403-
collectedNodes.push(entryNode);
4396+
return entryNode;
44044397
});
4405-
return collectedNodes;
44064398
};
44074399

44084400
const serializeAws_restXmlFooEnumSet = (

0 commit comments

Comments
 (0)