@@ -25,50 +25,75 @@ type ManyCallRequest = {
25
25
awaitAtTheEnd : boolean ;
26
26
} ;
27
27
28
- function rawCall (
28
+ async function rawCall (
29
29
ctx : restate . Context ,
30
- request : ProxyRequest
31
- ) : Promise < Uint8Array > {
32
- return ctx . genericCall ( {
33
- service : request . serviceName ,
34
- method : request . handlerName ,
35
- key : request . virtualObjectKey ,
30
+ serviceName : string ,
31
+ handlerName : string ,
32
+ message : Array < number > ,
33
+ key ?: string
34
+ ) {
35
+ const input = new Uint8Array ( message ) ;
36
+ const response : Uint8Array = await ctx . genericCall ( {
37
+ service : serviceName ,
38
+ method : handlerName ,
39
+ key : key ,
36
40
inputSerde : restate . serde . binary ,
37
41
outputSerde : restate . serde . binary ,
38
- parameter : new Uint8Array ( request . message ) ,
42
+ parameter : input ,
39
43
} ) ;
44
+
45
+ return Array . from ( response ) ;
40
46
}
41
47
42
- function rawSend ( ctx : restate . Context , request : ProxyRequest ) {
48
+ async function rawSend (
49
+ ctx : restate . Context ,
50
+ serviceName : string ,
51
+ handlerName : string ,
52
+ message : Array < number > ,
53
+ key ?: string
54
+ ) {
55
+ const input = new Uint8Array ( message ) ;
43
56
ctx . genericSend ( {
44
- service : request . serviceName ,
45
- method : request . handlerName ,
46
- key : request . virtualObjectKey ,
57
+ service : serviceName ,
58
+ method : handlerName ,
59
+ key : key ,
47
60
inputSerde : restate . serde . binary ,
48
- parameter : new Uint8Array ( request . message ) ,
61
+ parameter : input ,
49
62
} ) ;
50
63
}
51
64
52
65
const o = restate . service ( {
53
66
name : "Proxy" ,
54
67
handlers : {
55
68
async call ( ctx : restate . Context , request : ProxyRequest ) {
56
- return Array . from ( await rawCall ( ctx , request ) ) ;
69
+ return await rawCall (
70
+ ctx ,
71
+ request . serviceName ,
72
+ request . handlerName ,
73
+ request . message ,
74
+ request . virtualObjectKey
75
+ ) ;
57
76
} ,
58
77
59
78
async oneWayCall ( ctx : restate . Context , request : ProxyRequest ) {
60
- rawSend ( ctx , request ) ;
79
+ return await rawSend (
80
+ ctx ,
81
+ request . serviceName ,
82
+ request . handlerName ,
83
+ request . message ,
84
+ request . virtualObjectKey
85
+ ) ;
61
86
} ,
62
87
63
88
async manyCalls ( ctx : restate . Context , request : ManyCallRequest [ ] ) {
64
89
const toAwait = [ ] ;
65
90
66
91
for ( const r of request ) {
67
92
if ( r . oneWayCall ) {
68
- rawSend ( ctx , r . proxyRequest ) ;
93
+ await this . oneWayCall ( ctx , r . proxyRequest ) ;
69
94
continue ;
70
95
}
71
- const promise = rawCall ( ctx , r . proxyRequest ) ;
96
+ const promise = this . call ( ctx , r . proxyRequest ) ;
72
97
if ( r . awaitAtTheEnd ) {
73
98
toAwait . push ( promise ) ;
74
99
}
0 commit comments