Skip to content

Commit c371b77

Browse files
committed
chore(codegen): generate H2 handler according to model
1 parent 7d9ae68 commit c371b77

File tree

1 file changed

+19
-19
lines changed
  • codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen

1 file changed

+19
-19
lines changed

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

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616
package software.amazon.smithy.aws.typescript.codegen;
1717

1818
import java.util.Collections;
19+
import java.util.List;
1920
import java.util.Map;
2021
import java.util.function.Consumer;
21-
import software.amazon.smithy.aws.traits.ServiceTrait;
22+
import software.amazon.smithy.aws.traits.protocols.AwsProtocolTrait;
2223
import software.amazon.smithy.codegen.core.SymbolProvider;
2324
import software.amazon.smithy.model.Model;
2425
import software.amazon.smithy.model.shapes.ServiceShape;
@@ -38,28 +39,27 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
3839
TypeScriptSettings settings,
3940
Model model,
4041
SymbolProvider symbolProvider,
41-
LanguageTarget target
42-
) {
43-
if (!isHttp2Applicable(settings.getService(model))) {
42+
LanguageTarget target) {
43+
if (isHttp2Applicable(settings.getService(model))) {
44+
switch (target) {
45+
case NODE:
46+
return MapUtils.of("requestHandler", writer -> {
47+
writer.addDependency(TypeScriptDependency.AWS_SDK_NODE_HTTP_HANDLER);
48+
writer.addImport("NodeHttp2Handler", "NodeHttp2Handler",
49+
TypeScriptDependency.AWS_SDK_NODE_HTTP_HANDLER.packageName);
50+
writer.write("new NodeHttp2Handler()");
51+
});
52+
default:
53+
return Collections.emptyMap();
54+
}
55+
} else {
4456
return Collections.emptyMap();
4557
}
46-
switch (target) {
47-
case NODE:
48-
return MapUtils.of("requestHandler", writer -> {
49-
writer.addDependency(TypeScriptDependency.AWS_SDK_NODE_HTTP_HANDLER);
50-
writer.addImport("NodeHttp2Handler", "NodeHttp2Handler",
51-
TypeScriptDependency.AWS_SDK_NODE_HTTP_HANDLER.packageName);
52-
writer.write("new NodeHttp2Handler()");
53-
});
54-
default:
55-
return Collections.emptyMap();
56-
}
5758
}
5859

5960
private static boolean isHttp2Applicable(ServiceShape service) {
60-
String serviceId = service.getTrait(ServiceTrait.class).map(ServiceTrait::getSdkId).orElse("");
61-
// TODO: Add "Kinesis" service to http2 applicable, but blocked by potential breaking change.
62-
// Reference: https://github.com/aws/aws-sdk-js-v3/issues/1206
63-
return ListUtils.of("Lex Runtime V2", "Transcribe Streaming").contains(serviceId);
61+
List<String> eventStreamFlag = service.getTrait(AwsProtocolTrait.class)
62+
.map(AwsProtocolTrait::getEventStreamHttp).orElse(ListUtils.of());
63+
return eventStreamFlag.contains("h2");
6464
}
6565
}

0 commit comments

Comments
 (0)