@apibara/protocol 0.4.5 → 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 +3 -2
- package/dist/client.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +12 -2
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,7 +32,7 @@ class StreamClient {
|
|
|
32
32
|
* }
|
|
33
33
|
* ```
|
|
34
34
|
*/
|
|
35
|
-
constructor({ url, credentials, clientOptions, token, onReconnect }) {
|
|
35
|
+
constructor({ url, credentials, clientOptions, token, onReconnect, timeout }) {
|
|
36
36
|
const baseCredentials = credentials ?? grpc_js_1.ChannelCredentials.createSsl();
|
|
37
37
|
// only secure credentials can be composed with metadata generators.
|
|
38
38
|
const credentialsWithMetadata = baseCredentials._isSecure()
|
|
@@ -44,6 +44,7 @@ class StreamClient {
|
|
|
44
44
|
});
|
|
45
45
|
this.stream_id = 0;
|
|
46
46
|
this.onReconnect = onReconnect ?? defaultOnReconnect;
|
|
47
|
+
this.timeout = timeout ?? MESSAGE_TIMEOUT_MS;
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* Async iterator over messages in the stream.
|
|
@@ -71,7 +72,7 @@ class StreamClient {
|
|
|
71
72
|
const timeout = new Promise((_, reject) => {
|
|
72
73
|
clock = setTimeout(() => {
|
|
73
74
|
reject(new Error('Stream timed out'));
|
|
74
|
-
},
|
|
75
|
+
}, this.timeout);
|
|
75
76
|
});
|
|
76
77
|
const message = (await Promise.race([streamIter.next(), timeout]));
|
|
77
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,7 +139,7 @@ export class StreamClient {
|
|
|
130
139
|
* }
|
|
131
140
|
* ```
|
|
132
141
|
*/
|
|
133
|
-
constructor({ url, credentials, clientOptions, token, onReconnect }: StreamClientArgs) {
|
|
142
|
+
constructor({ url, credentials, clientOptions, token, onReconnect, timeout }: StreamClientArgs) {
|
|
134
143
|
const baseCredentials = credentials ?? ChannelCredentials.createSsl()
|
|
135
144
|
|
|
136
145
|
// only secure credentials can be composed with metadata generators.
|
|
@@ -146,6 +155,7 @@ export class StreamClient {
|
|
|
146
155
|
})
|
|
147
156
|
this.stream_id = 0
|
|
148
157
|
this.onReconnect = onReconnect ?? defaultOnReconnect
|
|
158
|
+
this.timeout = timeout ?? MESSAGE_TIMEOUT_MS
|
|
149
159
|
}
|
|
150
160
|
|
|
151
161
|
/**
|
|
@@ -177,7 +187,7 @@ export class StreamClient {
|
|
|
177
187
|
const timeout = new Promise((_, reject) => {
|
|
178
188
|
clock = setTimeout(() => {
|
|
179
189
|
reject(new Error('Stream timed out'))
|
|
180
|
-
},
|
|
190
|
+
}, this.timeout)
|
|
181
191
|
})
|
|
182
192
|
|
|
183
193
|
const message = <IteratorResult<v1alpha2.IStreamDataResponse>>(
|