Skip to content

Commit a6a0cd6

Browse files
committed
Remove redundant code by doing iteration only for some shapes
1 parent 05dcc4a commit a6a0cd6

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/StructuredMemberWriter.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ void writeFilterSensitiveLogForArray(TypeScriptWriter writer, MemberShape arrayM
8989
}
9090
);
9191
} else {
92-
// ToDo: Call this function only for StructureShape|ListShape|SetShape|MapShape
9392
// Function is inside another function, so just return item in else case
9493
writer.write("item => item");
9594
}
@@ -109,7 +108,6 @@ void writeFilterSensitiveLogForMap(TypeScriptWriter writer, MemberShape mapMembe
109108
writer.write("acc[key] = ${T}.filterSensitiveLog(value);",
110109
symbolProvider.toSymbol(mapMember));
111110
} else {
112-
// ToDo: Call this function only for StructureShape|ListShape|SetShape|MapShape
113111
// populate value in in acc[key]
114112
writer.write("acc[key] = value;");
115113
}
@@ -132,7 +130,7 @@ void writeFilterSensitiveLog(TypeScriptWriter writer, Shape shape) {
132130
memberName, memberName, symbolProvider.toSymbol(member), memberName);
133131
} else if (memberShape instanceof ListShape || memberShape instanceof SetShape) {
134132
MemberShape arrayMember = ((CollectionShape) memberShape).getMember();
135-
if (!(model.expectShape(arrayMember.getTarget()) instanceof SimpleShape)) {
133+
if (isIterationRequired(model.expectShape(arrayMember.getTarget()))) {
136134
// Iterate over array items, and call array specific function on each member
137135
writer.openBlock("...(obj.${L} && { ${L}: obj.${L}.map(", ")}),",
138136
memberName, memberName, memberName,
@@ -143,7 +141,7 @@ void writeFilterSensitiveLog(TypeScriptWriter writer, Shape shape) {
143141
}
144142
} else if (memberShape instanceof MapShape) {
145143
MemberShape mapMember = ((MapShape) memberShape).getValue();
146-
if (!(model.expectShape(mapMember.getTarget()) instanceof SimpleShape)) {
144+
if (isIterationRequired(model.expectShape(mapMember.getTarget()))) {
147145
// Iterate over Object entries, and call reduce to repopulate map
148146
writer.openBlock("...(obj.${L} && { ${L}: Object.entries(obj.${L}).reduce(", ")}),",
149147
memberName, memberName, memberName,
@@ -156,6 +154,21 @@ void writeFilterSensitiveLog(TypeScriptWriter writer, Shape shape) {
156154
}
157155
}
158156

157+
/**
158+
* Identified if iteration is required on shape
159+
*
160+
* @param memberShape
161+
* @return If the iteration is required on memberShape
162+
*/
163+
private boolean isIterationRequired(Shape memberShape) {
164+
return (
165+
memberShape instanceof StructureShape ||
166+
memberShape instanceof ListShape ||
167+
memberShape instanceof SetShape ||
168+
memberShape instanceof MapShape
169+
);
170+
}
171+
159172
/**
160173
* Identifies if a member should be required on the generated interface.
161174
*

0 commit comments

Comments
 (0)