@@ -107,10 +107,8 @@ protected void serializeMap(GenerationContext context, MapShape shape) {
107
107
Model model = context .getModel ();
108
108
writer .addImport ("XmlNode" , "__XmlNode" , "@aws-sdk/xml-builder" );
109
109
110
- // Set up a location to store all of the child node(s).
111
- writer .write ("const collectedNodes: any = [];" );
112
110
// Use the keys as an iteration point to dispatch to the input value providers.
113
- writer .openBlock ("Object.keys(input).forEach (key => {" , "});" , () -> {
111
+ writer .openBlock ("return Object.keys(input).map (key => {" , "});" , () -> {
114
112
// Prepare a containing node for each entry's k/v pair.
115
113
writer .write ("const entryNode = new __XmlNode(\" entry\" );" );
116
114
@@ -137,25 +135,23 @@ protected void serializeMap(GenerationContext context, MapShape shape) {
137
135
writer .write ("const node = $L;" , valueTarget .accept (getMemberVisitor ("input[key]" )));
138
136
// Handle proper unwrapping of target nodes.
139
137
if (serializationReturnsArray (valueTarget )) {
140
- writer .write ("const container = new __XmlNode($S);" , valueName );
141
- writer .openBlock ("for (let index in node) {" , "}" , () -> {
142
- writer .write ("const workingNode = node[index];" );
143
- // Add @xmlNamespace value of the value member.
144
- AwsProtocolUtils .writeXmlNamespace (context , valueMember , "workingNode" );
145
- writer .write ("container.addChildNode(workingNode);" );
138
+ writer .openBlock ("entryNode.addChildNode(" , ");" , () -> {
139
+ writer .openBlock ("node.reduce((acc: __XmlNode, workingNode: any) => {" , "}" , () -> {
140
+ // Add @xmlNamespace value of the value member.
141
+ AwsProtocolUtils .writeXmlNamespace (context , valueMember , "workingNode" );
142
+ writer .write ("acc.addChildNode(workingNode);" );
143
+ writer .write ("return acc;" );
144
+ });
145
+ writer .write (", new __XmlNode($S));" , valueName );
146
146
});
147
- writer .write ("entryNode.addChildNode(container);" );
148
147
} else {
149
148
// Add @xmlNamespace value of the target member.
150
149
AwsProtocolUtils .writeXmlNamespace (context , valueMember , "node" );
151
150
writer .write ("entryNode.addChildNode(node.withName($S));" , valueName );
152
151
}
153
152
154
- // Add the entry to the collection.
155
- writer .write ("collectedNodes.push(entryNode);" );
153
+ writer .write ("return entryNode;" );
156
154
});
157
-
158
- writer .write ("return collectedNodes;" );
159
155
}
160
156
161
157
@ Override
0 commit comments