21
21
import software .amazon .smithy .utils .ListUtils ;
22
22
import software .amazon .smithy .utils .MapUtils ;
23
23
24
- public class AddEventStreamSigningDependency implements TypeScriptIntegration {
24
+ /**
25
+ * Adds runtime client plugins that handle the eventstream flow in request,
26
+ * including eventstream payload signing.
27
+ */
28
+ public class AddEventStreamHandlingDependency implements TypeScriptIntegration {
25
29
@ Override
26
30
public List <RuntimeClientPlugin > getClientPlugins () {
27
31
return ListUtils .of (
28
32
RuntimeClientPlugin .builder ()
29
- .withConventions (AwsDependency .MIDDLEWARE_EVENTSTREAM_SIGNING .dependency ,
33
+ .withConventions (AwsDependency .MIDDLEWARE_EVENTSTREAM .dependency ,
30
34
"EventStream" )
31
- .servicePredicate (AddEventStreamSigningDependency ::hasEventStreamInput )
35
+ .servicePredicate (AddEventStreamHandlingDependency ::hasEventStreamInput )
32
36
.build ()
33
37
);
34
38
}
@@ -41,10 +45,10 @@ public void addConfigInterfaceFields(
41
45
TypeScriptWriter writer
42
46
) {
43
47
if (hasEventStreamInput (model , settings .getService (model ))) {
44
- writer .addImport ("EventStreamSignerProvider " , "__EventStreamSignerProvider " ,
48
+ writer .addImport ("EventStreamPayloadHandlerProvider " , "__EventStreamPayloadHandlerProvider " ,
45
49
TypeScriptDependency .AWS_SDK_TYPES .packageName );
46
- writer .writeDocs ("The function that provides necessary utilities for singing event stream" );
47
- writer .write ("eventStreamSignerProvider ?: __EventStreamSignerProvider ;\n " );
50
+ writer .writeDocs ("The function that provides necessary utilities for handling request event stream. " );
51
+ writer .write ("eventStreamPayloadHandlerProvider ?: __EventStreamPayloadHandlerProvider ;\n " );
48
52
}
49
53
}
50
54
@@ -62,25 +66,24 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
62
66
63
67
switch (target ) {
64
68
case NODE :
65
- return MapUtils .of ("eventStreamSignerProvider " , writer -> {
66
- writer .addDependency (AwsDependency .AWS_SDK_EVENTSTREAM_SIGNER_NODE );
67
- writer .addImport ("eventStreamSignerProvider " , "eventStreamSignerProvider " ,
68
- AwsDependency .AWS_SDK_EVENTSTREAM_SIGNER_NODE .packageName );
69
- writer .write ("eventStreamSignerProvider ," );
69
+ return MapUtils .of ("eventStreamPayloadHandlerProvider " , writer -> {
70
+ writer .addDependency (AwsDependency .AWS_SDK_EVENTSTREAM_HANDLER_NODE );
71
+ writer .addImport ("eventStreamPayloadHandlerProvider " , "eventStreamPayloadHandlerProvider " ,
72
+ AwsDependency .AWS_SDK_EVENTSTREAM_HANDLER_NODE .packageName );
73
+ writer .write ("eventStreamPayloadHandlerProvider ," );
70
74
});
71
75
case BROWSER :
72
76
/**
73
77
* Browser doesn't support streaming requests as of March 2020.
74
- * Here we don't supply invalidFunction. Each service client needs to support eventstream request
75
- * in browsers has to implement a customization providing its own eventStreamSignerProvider
76
- * TODO: update this when WebSocket event stream support lands
78
+ * Each service client needs to support eventstream request in browser individually.
79
+ * Services like TranscribeStreaming support it via WebSocket.
77
80
*/
78
- return MapUtils .of ("eventStreamSignerProvider " , writer -> {
81
+ return MapUtils .of ("eventStreamPayloadHandlerProvider " , writer -> {
79
82
writer .addDependency (TypeScriptDependency .INVALID_DEPENDENCY );
80
83
writer .addImport ("invalidFunction" , "invalidFunction" ,
81
84
TypeScriptDependency .INVALID_DEPENDENCY .packageName );
82
- writer .openBlock ("eventStreamSignerProvider : () => ({" , "})," , () -> {
83
- writer .write ("sign : invalidFunction(\" event stream request is not supported in browser.\" )," );
85
+ writer .openBlock ("eventStreamPayloadHandlerProvider : () => ({" , "})," , () -> {
86
+ writer .write ("handle : invalidFunction(\" event stream request is not supported in browser.\" )," );
84
87
});
85
88
});
86
89
case REACT_NATIVE :
@@ -89,12 +92,12 @@ public Map<String, Consumer<TypeScriptWriter>> getRuntimeConfigWriters(
89
92
* Here we don't supply invalidFunction. Each service client needs to support eventstream request
90
93
* in RN has to implement a customization providing its own eventStreamSignerProvider
91
94
*/
92
- return MapUtils .of ("eventStreamSignerProvider " , writer -> {
95
+ return MapUtils .of ("eventStreamPayloadHandlerProvider " , writer -> {
93
96
writer .addDependency (TypeScriptDependency .INVALID_DEPENDENCY );
94
97
writer .addImport ("invalidFunction" , "invalidFunction" ,
95
98
TypeScriptDependency .INVALID_DEPENDENCY .packageName );
96
- writer .openBlock ("eventStreamSignerProvider : () => ({" , "})," , () -> {
97
- writer .write ("sign : invalidFunction(\" event stream request is not supported in ReactNative.\" )," );
99
+ writer .openBlock ("eventStreamPayloadHandlerProvider : () => ({" , "})," , () -> {
100
+ writer .write ("handle : invalidFunction(\" event stream request is not supported in ReactNative.\" )," );
98
101
});
99
102
});
100
103
default :
0 commit comments