@@ -21,10 +21,10 @@ export default class GRPCClientState implements IClientState {
21
21
for ( const stateObject of stateObjects ) {
22
22
const si = new StateItem ( ) ;
23
23
si . setKey ( stateObject . key ) ;
24
- si . setValue ( Buffer . from ( stateObject . value , "utf-8" ) ) ;
24
+ si . setValue ( Buffer . from ( typeof stateObject . value === "object" ? JSON . stringify ( stateObject . value ) : stateObject . value . toString ( ) , "utf-8" ) ) ;
25
25
stateList . push ( si ) ;
26
26
}
27
-
27
+
28
28
const msgService = new SaveStateRequest ( ) ;
29
29
msgService . setStoreName ( storeName ) ;
30
30
msgService . setStatesList ( stateList ) ;
@@ -47,6 +47,7 @@ export default class GRPCClientState implements IClientState {
47
47
msgService . setStoreName ( storeName ) ;
48
48
msgService . setKey ( key )
49
49
50
+
50
51
// @todo : https://docs.dapr.io/reference/api/state_api/#optional-behaviors
51
52
// msgService.setConsistency()
52
53
@@ -76,7 +77,6 @@ export default class GRPCClientState implements IClientState {
76
77
msgService . setStoreName ( storeName ) ;
77
78
msgService . setKeysList ( keys ) ;
78
79
msgService . setParallelism ( parallelism ) ;
79
-
80
80
// @todo : https://docs.dapr.io/reference/api/state_api/#optional-behaviors
81
81
// msgService.setConsistency()
82
82
@@ -90,11 +90,20 @@ export default class GRPCClientState implements IClientState {
90
90
// https://docs.dapr.io/reference/api/state_api/#http-response-2
91
91
const items = res . getItemsList ( ) ;
92
92
93
- return resolve ( items . map ( i => ( {
94
- key : i . getKey ( ) ,
95
- data : Buffer . from ( i . getData ( ) ) . toString ( ) ,
96
- etag : i . getEtag ( )
97
- } ) ) ) ;
93
+ return resolve ( items . map ( i => {
94
+ const resDataStr = Buffer . from ( i . getData ( ) ) . toString ( )
95
+ let data : string ;
96
+ try {
97
+ data = JSON . parse ( resDataStr ) ;
98
+ } catch ( e ) {
99
+ data = resDataStr ;
100
+ }
101
+ return {
102
+ key : i . getKey ( ) ,
103
+ data,
104
+ etag : i . getEtag ( )
105
+ }
106
+ } ) ) ;
98
107
} ) ;
99
108
} )
100
109
}
0 commit comments