@apibara/protocol 0.4.4 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +8 -1
- package/dist/client.js +8 -4
- package/dist/client.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +20 -7
package/dist/client.d.ts
CHANGED
|
@@ -65,6 +65,12 @@ export declare type StreamClientArgs = {
|
|
|
65
65
|
* By default uses `defaultOnReconnect`, which only reconnects on internal grpc errors.
|
|
66
66
|
*/
|
|
67
67
|
onReconnect?: OnReconnect;
|
|
68
|
+
/**
|
|
69
|
+
* Maximum time to wait for a message before timing out, in milliseconds.
|
|
70
|
+
*
|
|
71
|
+
* Defaults to 45 seconds.
|
|
72
|
+
*/
|
|
73
|
+
timeout?: number;
|
|
68
74
|
};
|
|
69
75
|
/**
|
|
70
76
|
* A client to configure and stream data.
|
|
@@ -75,6 +81,7 @@ export declare class StreamClient {
|
|
|
75
81
|
private stream_id;
|
|
76
82
|
private onReconnect;
|
|
77
83
|
private configuration?;
|
|
84
|
+
private timeout;
|
|
78
85
|
/**
|
|
79
86
|
* Create a new `StreamClient`.
|
|
80
87
|
*
|
|
@@ -94,7 +101,7 @@ export declare class StreamClient {
|
|
|
94
101
|
* }
|
|
95
102
|
* ```
|
|
96
103
|
*/
|
|
97
|
-
constructor({ url, credentials, clientOptions, token, onReconnect }: StreamClientArgs);
|
|
104
|
+
constructor({ url, credentials, clientOptions, token, onReconnect, timeout }: StreamClientArgs);
|
|
98
105
|
/**
|
|
99
106
|
* Async iterator over messages in the stream.
|
|
100
107
|
*/
|
package/dist/client.js
CHANGED
|
@@ -32,15 +32,19 @@ class StreamClient {
|
|
|
32
32
|
* }
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
|
-
constructor({ url, credentials, clientOptions, token, onReconnect }) {
|
|
36
|
-
const
|
|
37
|
-
|
|
35
|
+
constructor({ url, credentials, clientOptions, token, onReconnect, timeout }) {
|
|
36
|
+
const baseCredentials = credentials ?? grpc_js_1.ChannelCredentials.createSsl();
|
|
37
|
+
// only secure credentials can be composed with metadata generators.
|
|
38
|
+
const credentialsWithMetadata = baseCredentials._isSecure()
|
|
39
|
+
? baseCredentials.compose(grpc_js_1.CallCredentials.createFromMetadataGenerator(createMetadataGenerator(token)))
|
|
40
|
+
: baseCredentials;
|
|
38
41
|
this.inner = new StreamService(url, credentialsWithMetadata, {
|
|
39
42
|
'grpc.keepalive_timeout_ms': 3600000,
|
|
40
43
|
...clientOptions,
|
|
41
44
|
});
|
|
42
45
|
this.stream_id = 0;
|
|
43
46
|
this.onReconnect = onReconnect ?? defaultOnReconnect;
|
|
47
|
+
this.timeout = timeout ?? MESSAGE_TIMEOUT_MS;
|
|
44
48
|
}
|
|
45
49
|
/**
|
|
46
50
|
* Async iterator over messages in the stream.
|
|
@@ -68,7 +72,7 @@ class StreamClient {
|
|
|
68
72
|
const timeout = new Promise((_, reject) => {
|
|
69
73
|
clock = setTimeout(() => {
|
|
70
74
|
reject(new Error('Stream timed out'));
|
|
71
|
-
},
|
|
75
|
+
}, this.timeout);
|
|
72
76
|
});
|
|
73
77
|
const message = (await Promise.race([streamIter.next(), timeout]));
|
|
74
78
|
const messageTyped = message.value;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,2CAOsB;AAEtB,mCAAkC;AAClC,uCAA6C;AAE7C,yCAAgE;AAAvD,6GAAA,kBAAkB,OAAA;AAE3B,MAAM,aAAa,GAAG,gBAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;AAE3E,oFAAoF;AACpF,MAAM,kBAAkB,GAAG,KAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -92,12 +92,20 @@ export type StreamClientArgs = {
|
|
|
92
92
|
* Authorization bearer token, used to authenticate with the server.
|
|
93
93
|
*/
|
|
94
94
|
token?: string
|
|
95
|
+
|
|
95
96
|
/**
|
|
96
97
|
* Callback to control reconnection after receiving an error from the stream.
|
|
97
98
|
*
|
|
98
99
|
* By default uses `defaultOnReconnect`, which only reconnects on internal grpc errors.
|
|
99
100
|
*/
|
|
100
101
|
onReconnect?: OnReconnect
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Maximum time to wait for a message before timing out, in milliseconds.
|
|
105
|
+
*
|
|
106
|
+
* Defaults to 45 seconds.
|
|
107
|
+
*/
|
|
108
|
+
timeout?: number
|
|
101
109
|
}
|
|
102
110
|
|
|
103
111
|
/**
|
|
@@ -110,6 +118,7 @@ export class StreamClient {
|
|
|
110
118
|
private stream_id: number
|
|
111
119
|
private onReconnect: OnReconnect
|
|
112
120
|
private configuration?: ConfigureArgs
|
|
121
|
+
private timeout: number
|
|
113
122
|
|
|
114
123
|
/**
|
|
115
124
|
* Create a new `StreamClient`.
|
|
@@ -130,12 +139,15 @@ export class StreamClient {
|
|
|
130
139
|
* }
|
|
131
140
|
* ```
|
|
132
141
|
*/
|
|
133
|
-
constructor({ url, credentials, clientOptions, token, onReconnect }: StreamClientArgs) {
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
142
|
+
constructor({ url, credentials, clientOptions, token, onReconnect, timeout }: StreamClientArgs) {
|
|
143
|
+
const baseCredentials = credentials ?? ChannelCredentials.createSsl()
|
|
144
|
+
|
|
145
|
+
// only secure credentials can be composed with metadata generators.
|
|
146
|
+
const credentialsWithMetadata = baseCredentials._isSecure()
|
|
147
|
+
? baseCredentials.compose(
|
|
148
|
+
CallCredentials.createFromMetadataGenerator(createMetadataGenerator(token))
|
|
149
|
+
)
|
|
150
|
+
: baseCredentials
|
|
139
151
|
|
|
140
152
|
this.inner = new StreamService(url, credentialsWithMetadata, {
|
|
141
153
|
'grpc.keepalive_timeout_ms': 3_600_000,
|
|
@@ -143,6 +155,7 @@ export class StreamClient {
|
|
|
143
155
|
})
|
|
144
156
|
this.stream_id = 0
|
|
145
157
|
this.onReconnect = onReconnect ?? defaultOnReconnect
|
|
158
|
+
this.timeout = timeout ?? MESSAGE_TIMEOUT_MS
|
|
146
159
|
}
|
|
147
160
|
|
|
148
161
|
/**
|
|
@@ -174,7 +187,7 @@ export class StreamClient {
|
|
|
174
187
|
const timeout = new Promise((_, reject) => {
|
|
175
188
|
clock = setTimeout(() => {
|
|
176
189
|
reject(new Error('Stream timed out'))
|
|
177
|
-
},
|
|
190
|
+
}, this.timeout)
|
|
178
191
|
})
|
|
179
192
|
|
|
180
193
|
const message = <IteratorResult<v1alpha2.IStreamDataResponse>>(
|