16
16
package software .amazon .smithy .aws .typescript .codegen ;
17
17
18
18
import java .util .Collections ;
19
+ import java .util .List ;
19
20
import java .util .Map ;
20
21
import java .util .function .Consumer ;
21
- import software .amazon .smithy .aws .traits .ServiceTrait ;
22
+ import software .amazon .smithy .aws .traits .protocols . AwsProtocolTrait ;
22
23
import software .amazon .smithy .codegen .core .SymbolProvider ;
23
24
import software .amazon .smithy .model .Model ;
24
25
import software .amazon .smithy .model .shapes .ServiceShape ;
@@ -38,28 +39,27 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
38
39
TypeScriptSettings settings ,
39
40
Model model ,
40
41
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 {
44
56
return Collections .emptyMap ();
45
57
}
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
- }
57
58
}
58
59
59
60
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" );
64
64
}
65
65
}
0 commit comments