Skip to content

Commit 1f3edbd

Browse files
committed
find streaming blob output member name
1 parent 18fe335 commit 1f3edbd

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/CommandGenerator.java

+17-4
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import software.amazon.smithy.model.traits.DocumentationTrait;
5050
import software.amazon.smithy.model.traits.ErrorTrait;
5151
import software.amazon.smithy.model.traits.InternalTrait;
52+
import software.amazon.smithy.model.traits.StreamingTrait;
5253
import software.amazon.smithy.rulesengine.traits.EndpointRuleSetTrait;
5354
import software.amazon.smithy.typescript.codegen.documentation.StructureExampleGenerator;
5455
import software.amazon.smithy.typescript.codegen.endpointsV2.RuleSetParameterFinder;
@@ -274,10 +275,22 @@ private String getCommandExample(String serviceName, String configName, String c
274275
}
275276

276277
private String getReadStreamExample() {
277-
boolean hasStreamingBlobOutput = false;
278-
if (hasStreamingBlobOutput) {
279-
String memberName = "";
280-
return "const byte = await response[`%s`].transformToByteArray();".formatted(memberName);
278+
String streamingBlobOutputMemberName = model.expectShape(operation.getOutputShape())
279+
.asStructureShape().get()
280+
.getAllMembers()
281+
.values()
282+
.stream()
283+
.filter(ms -> ms.isBlobShape() &&
284+
(ms.hasTrait(StreamingTrait.class) ||
285+
model.expectShape(ms.getTarget()).hasTrait(StreamingTrait.class))
286+
)
287+
.findFirst()
288+
.map(MemberShape::getMemberName)
289+
.orElse("");
290+
291+
if (!streamingBlobOutputMemberName.isEmpty()) {
292+
return "const byte = await response[`%s`].transformToByteArray();"
293+
.formatted(streamingBlobOutputMemberName);
281294
}
282295
return "";
283296
}

0 commit comments

Comments
 (0)