@chainlink/external-adapter-framework 0.27.2 → 0.27.4
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/package.json +1 -1
- package/transports/websocket.d.ts +2 -1
- package/transports/websocket.js +27 -12
- package/transports/websocket.js.map +1 -1
- package/util/index.d.ts +10 -1
- package/util/index.js +18 -2
- package/util/index.js.map +1 -1
package/package.json
CHANGED
|
@@ -23,6 +23,7 @@ export interface WebSocketTransportConfig<T extends WebsocketTransportGenerics>
|
|
|
23
23
|
/**
|
|
24
24
|
* Handles when the WS is successfully opened.
|
|
25
25
|
* Optional since logic is not always needed on connection.
|
|
26
|
+
* Note: any listeners set in this method will be cleared after its execution.
|
|
26
27
|
*
|
|
27
28
|
* @param wsConnection - the WebSocket with an established connection
|
|
28
29
|
* @returns an empty Promise, or void
|
|
@@ -93,7 +94,7 @@ export declare class WebSocketTransport<T extends WebsocketTransportGenerics> ex
|
|
|
93
94
|
error: (event: WebSocket.ErrorEvent) => Promise<void>;
|
|
94
95
|
close: (event: WebSocket.CloseEvent) => void;
|
|
95
96
|
};
|
|
96
|
-
establishWsConnection(context: EndpointContext<T>, url: string, options?: WebSocket.ClientOptions | undefined): Promise<
|
|
97
|
+
establishWsConnection(context: EndpointContext<T>, url: string, options?: WebSocket.ClientOptions | undefined): Promise<WebSocket>;
|
|
97
98
|
sendMessages(context: EndpointContext<T>, subscribes: unknown[], unsubscribes: unknown[]): Promise<void>;
|
|
98
99
|
streamHandler(context: EndpointContext<T>, subscriptions: SubscriptionDeltas<T['Request']['Params']>): Promise<void>;
|
|
99
100
|
private rejectionHandler;
|
package/transports/websocket.js
CHANGED
|
@@ -75,7 +75,9 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
75
75
|
});
|
|
76
76
|
if (Array.isArray(results)) {
|
|
77
77
|
// Updating the last message received time here, to only care about messages we use
|
|
78
|
-
|
|
78
|
+
if (results.length > 0) {
|
|
79
|
+
this.lastMessageReceivedAt = Date.now();
|
|
80
|
+
}
|
|
79
81
|
logger.trace(`Writing ${results.length} responses to cache`);
|
|
80
82
|
await this.responseCache.write(this.name, results);
|
|
81
83
|
}
|
|
@@ -107,18 +109,14 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
107
109
|
};
|
|
108
110
|
}
|
|
109
111
|
async establishWsConnection(context, url, options) {
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
connection.addEventListener('message', this.rejectionHandler(reject, handlers.message));
|
|
116
|
-
connection.addEventListener('error', handlers.error);
|
|
117
|
-
connection.addEventListener('close', handlers.close);
|
|
118
|
-
});
|
|
112
|
+
const [promise, resolve, reject] = (0, util_1.deferredPromise)();
|
|
113
|
+
const ctor = WebSocketClassProvider.get();
|
|
114
|
+
const connection = new ctor(url, undefined, options);
|
|
115
|
+
const handlers = this.buildConnectionHandlers(context, connection, resolve);
|
|
116
|
+
connection.addEventListener('open', this.rejectionHandler(reject, handlers.open));
|
|
119
117
|
// Attempt to establish the connection
|
|
120
118
|
try {
|
|
121
|
-
|
|
119
|
+
await (0, util_1.timeoutPromise)('WS Open Handler', promise, context.adapterSettings.WS_CONNECTION_OPEN_TIMEOUT);
|
|
122
120
|
// Record active ws connections by incrementing count on open
|
|
123
121
|
metrics_1.metrics.get('wsConnectionActive').inc();
|
|
124
122
|
}
|
|
@@ -126,11 +124,20 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
126
124
|
logger.error(`There was an error connecting to the provider websocket`);
|
|
127
125
|
throw e;
|
|
128
126
|
}
|
|
127
|
+
// Now that the connection is established, we can clean up listeners and set the proper ones
|
|
128
|
+
connection.removeAllListeners();
|
|
129
|
+
connection.addEventListener('message', this.rejectionHandler(reject, handlers.message));
|
|
130
|
+
connection.addEventListener('error', handlers.error);
|
|
131
|
+
connection.addEventListener('close', handlers.close);
|
|
132
|
+
return connection;
|
|
129
133
|
}
|
|
130
134
|
async sendMessages(context, subscribes, unsubscribes) {
|
|
131
135
|
const serializedSubscribes = subscribes.map(this.serializeMessage);
|
|
132
136
|
const serializedUnsubscribes = unsubscribes.map(this.serializeMessage);
|
|
133
137
|
const messages = serializedSubscribes.concat(serializedUnsubscribes);
|
|
138
|
+
if (messages.length > 0) {
|
|
139
|
+
logger.debug(`There are ${messages.length} messages to send`);
|
|
140
|
+
}
|
|
134
141
|
for (const message of messages) {
|
|
135
142
|
this.wsConnection?.send(message);
|
|
136
143
|
}
|
|
@@ -158,6 +165,14 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
158
165
|
const connectionUnresponsive = timeSinceLastActivity > 0 &&
|
|
159
166
|
timeSinceLastActivity > context.adapterSettings.WS_SUBSCRIPTION_UNRESPONSIVE_TTL;
|
|
160
167
|
let connectionClosed = this.connectionClosed();
|
|
168
|
+
logger.trace(`WS conn staleness info:
|
|
169
|
+
now: ${now} |
|
|
170
|
+
timeSinceLastMessage: ${timeSinceLastMessage} |
|
|
171
|
+
timeSinceConnectionOpened: ${timeSinceConnectionOpened} |
|
|
172
|
+
timeSinceLastActivity: ${timeSinceLastActivity} |
|
|
173
|
+
subscriptionUnresponsiveTtl: ${context.adapterSettings.WS_SUBSCRIPTION_UNRESPONSIVE_TTL}
|
|
174
|
+
connectionUnresponsive: ${connectionUnresponsive} |
|
|
175
|
+
`);
|
|
161
176
|
// Check if we should close the current connection
|
|
162
177
|
if (!connectionClosed && (urlChanged || connectionUnresponsive)) {
|
|
163
178
|
const reason = urlChanged
|
|
@@ -187,7 +202,7 @@ class WebSocketTransport extends streaming_1.StreamingTransport {
|
|
|
187
202
|
// Need to write this now, otherwise there could be messages sent with values before the open handler finishes
|
|
188
203
|
this.providerDataStreamEstablished = Date.now();
|
|
189
204
|
// Connect to the provider
|
|
190
|
-
await this.establishWsConnection(context, urlFromConfig, options);
|
|
205
|
+
this.wsConnection = await this.establishWsConnection(context, urlFromConfig, options);
|
|
191
206
|
// Now that we successfully opened the connection, we can reset the variables
|
|
192
207
|
connectionClosed = false;
|
|
193
208
|
this.connectionOpenedAt = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAsD;AAU7C,oBAVF,YAAS,CAUE;AARlB,wCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":"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"}
|
package/util/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './types';
|
|
2
1
|
export * from './logger';
|
|
3
2
|
export * from './subscription-set/subscription-set';
|
|
3
|
+
export * from './types';
|
|
4
4
|
/**
|
|
5
5
|
* Sleeps for the provided number of milliseconds
|
|
6
6
|
* @param ms - The number of milliseconds to sleep for
|
|
@@ -37,3 +37,12 @@ export declare class DoubleLinkedList {
|
|
|
37
37
|
* @returns the result of the promise
|
|
38
38
|
*/
|
|
39
39
|
export declare const timeoutPromise: <T>(label: string, promise: Promise<T>, timeout: number) => Promise<T>;
|
|
40
|
+
type DeferredResolve<T> = (value: T) => void;
|
|
41
|
+
type DeferredReject = (reason?: unknown) => void;
|
|
42
|
+
/**
|
|
43
|
+
* This function will create a promise, and synchronously return both the promise itself and
|
|
44
|
+
* the resolve and reject callbacks so that they can be used and passed around individually.
|
|
45
|
+
*
|
|
46
|
+
* @returns all the deconstructed elements of a promise, to handle in synchronous-ish logic
|
|
47
|
+
*/
|
|
48
|
+
export declare const deferredPromise: <T>() => [Promise<T>, DeferredResolve<T>, DeferredReject];
|
package/util/index.js
CHANGED
|
@@ -14,10 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.timeoutPromise = exports.DoubleLinkedList = exports.LinkedListNode = exports.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
|
|
18
|
-
__exportStar(require("./types"), exports);
|
|
17
|
+
exports.deferredPromise = exports.timeoutPromise = exports.DoubleLinkedList = exports.LinkedListNode = exports.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
|
|
19
18
|
__exportStar(require("./logger"), exports);
|
|
20
19
|
__exportStar(require("./subscription-set/subscription-set"), exports);
|
|
20
|
+
__exportStar(require("./types"), exports);
|
|
21
21
|
/**
|
|
22
22
|
* Sleeps for the provided number of milliseconds
|
|
23
23
|
* @param ms - The number of milliseconds to sleep for
|
|
@@ -111,4 +111,20 @@ const timeoutPromise = (label, promise, timeout) => {
|
|
|
111
111
|
]).finally(() => clearTimeout(timer));
|
|
112
112
|
};
|
|
113
113
|
exports.timeoutPromise = timeoutPromise;
|
|
114
|
+
/**
|
|
115
|
+
* This function will create a promise, and synchronously return both the promise itself and
|
|
116
|
+
* the resolve and reject callbacks so that they can be used and passed around individually.
|
|
117
|
+
*
|
|
118
|
+
* @returns all the deconstructed elements of a promise, to handle in synchronous-ish logic
|
|
119
|
+
*/
|
|
120
|
+
const deferredPromise = () => {
|
|
121
|
+
let resolve;
|
|
122
|
+
let reject;
|
|
123
|
+
const promise = new Promise((res, rej) => {
|
|
124
|
+
resolve = res;
|
|
125
|
+
reject = rej;
|
|
126
|
+
});
|
|
127
|
+
return [promise, resolve, reject];
|
|
128
|
+
};
|
|
129
|
+
exports.deferredPromise = deferredPromise;
|
|
114
130
|
//# sourceMappingURL=index.js.map
|
package/util/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"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"}
|