@opentap/runner-client 2.1.3 → 2.2.1-alpha.1.1
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/lib/BaseClient.d.ts +12 -0
- package/lib/BaseClient.js +44 -3
- package/package.json +2 -1
package/lib/BaseClient.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare class BaseClient {
|
|
|
5
5
|
private baseSubject;
|
|
6
6
|
private connectionOptions;
|
|
7
7
|
private domainAccess;
|
|
8
|
+
private eventEmitter;
|
|
8
9
|
private _accessToken;
|
|
9
10
|
private _headers;
|
|
10
11
|
private _timeout;
|
|
@@ -97,6 +98,17 @@ export declare class BaseClient {
|
|
|
97
98
|
* @returns
|
|
98
99
|
*/
|
|
99
100
|
protected success<T>(): ((value: T) => T | PromiseLike<T>) | null | undefined;
|
|
101
|
+
/**
|
|
102
|
+
* Add an error-event listener.
|
|
103
|
+
* @param listener
|
|
104
|
+
* @returns {EventEmitter}
|
|
105
|
+
*/
|
|
106
|
+
addErrorEventListener(listener: (...args: any[]) => void): void;
|
|
107
|
+
/**
|
|
108
|
+
* Remove an error-event listener.
|
|
109
|
+
* @param listener
|
|
110
|
+
*/
|
|
111
|
+
removeErrorEventListener(listener: (...args: any[]) => void): void;
|
|
100
112
|
/**
|
|
101
113
|
* Retrieve component settings overview
|
|
102
114
|
* @returns {{Promise<ComponentSettingsIdentifier[]>}}
|
package/lib/BaseClient.js
CHANGED
|
@@ -56,7 +56,12 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
56
56
|
};
|
|
57
57
|
import { ComponentSettingsBase, ComponentSettingsIdentifier, ComponentSettingsListItem, DataGridControl, ErrorResponse, FileDescriptor, ListItemType, ProfileGroup, } from './DTOs';
|
|
58
58
|
import { Empty, ErrorCode, JSONCodec, StringCodec, connect, headers, } from 'nats.ws';
|
|
59
|
+
import { EventEmitter } from 'events';
|
|
59
60
|
var DEFAULT_TIMEOUT = 6000;
|
|
61
|
+
var Events;
|
|
62
|
+
(function (Events) {
|
|
63
|
+
Events["ERROR"] = "error_event";
|
|
64
|
+
})(Events || (Events = {}));
|
|
60
65
|
var BaseClient = /** @class */ (function () {
|
|
61
66
|
function BaseClient(baseSubject, options) {
|
|
62
67
|
this.domainAccess = new Map();
|
|
@@ -64,6 +69,7 @@ var BaseClient = /** @class */ (function () {
|
|
|
64
69
|
this.baseSubject = baseSubject;
|
|
65
70
|
this.connectionOptions = __assign({}, options) || {};
|
|
66
71
|
this.connectionOptions.timeout = (options === null || options === void 0 ? void 0 : options.timeout) || DEFAULT_TIMEOUT;
|
|
72
|
+
this.eventEmitter = new EventEmitter();
|
|
67
73
|
}
|
|
68
74
|
Object.defineProperty(BaseClient.prototype, "accessToken", {
|
|
69
75
|
/** Get request access token */
|
|
@@ -135,7 +141,12 @@ var BaseClient = /** @class */ (function () {
|
|
|
135
141
|
var jsonCodec = JSONCodec();
|
|
136
142
|
response = jsonCodec.decode(message.data);
|
|
137
143
|
}
|
|
138
|
-
|
|
144
|
+
if (_this.isErrorResponse(response)) {
|
|
145
|
+
var error = ErrorResponse.fromJS(response);
|
|
146
|
+
_this.eventEmitter.emit(Events.ERROR, error);
|
|
147
|
+
return Promise.reject(error);
|
|
148
|
+
}
|
|
149
|
+
return Promise.resolve(response);
|
|
139
150
|
})
|
|
140
151
|
.catch(function (error) { return Promise.reject(_this.natsErrorHandler(error, subject)); })];
|
|
141
152
|
case 1: return [2 /*return*/, _a.sent()];
|
|
@@ -160,6 +171,7 @@ var BaseClient = /** @class */ (function () {
|
|
|
160
171
|
default:
|
|
161
172
|
errorResponse.message = error.message;
|
|
162
173
|
}
|
|
174
|
+
this.eventEmitter.emit(Events.ERROR, errorResponse);
|
|
163
175
|
return errorResponse;
|
|
164
176
|
};
|
|
165
177
|
/**
|
|
@@ -253,7 +265,12 @@ var BaseClient = /** @class */ (function () {
|
|
|
253
265
|
}).then(function (byteArray) {
|
|
254
266
|
var jsonCodec = JSONCodec();
|
|
255
267
|
var response = jsonCodec.decode(byteArray);
|
|
256
|
-
|
|
268
|
+
if (_this.isErrorResponse(response)) {
|
|
269
|
+
var error = ErrorResponse.fromJS(response);
|
|
270
|
+
_this.eventEmitter.emit(Events.ERROR, error);
|
|
271
|
+
return Promise.reject(error);
|
|
272
|
+
}
|
|
273
|
+
return Promise.resolve(response);
|
|
257
274
|
})];
|
|
258
275
|
}
|
|
259
276
|
});
|
|
@@ -277,6 +294,8 @@ var BaseClient = /** @class */ (function () {
|
|
|
277
294
|
return [2 /*return*/, Promise.reject("".concat(subject, ": Connection has been closed! Please reconnect!"))];
|
|
278
295
|
fileSize = -1;
|
|
279
296
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
297
|
+
if (!_this.connection)
|
|
298
|
+
return Promise.reject("".concat(subject, ": Connection is down! Please try again!"));
|
|
280
299
|
var combinedResult = new Uint8Array([]);
|
|
281
300
|
// Subscribe to the subject before starting the process
|
|
282
301
|
var subscription = _this.connection.subscribe(replySubject);
|
|
@@ -314,7 +333,12 @@ var BaseClient = /** @class */ (function () {
|
|
|
314
333
|
return Promise.resolve(byteArray);
|
|
315
334
|
var jsonCodec = JSONCodec();
|
|
316
335
|
var response = jsonCodec.decode(byteArray);
|
|
317
|
-
|
|
336
|
+
if (_this.isErrorResponse(response)) {
|
|
337
|
+
var error = ErrorResponse.fromJS(response);
|
|
338
|
+
_this.eventEmitter.emit(Events.ERROR, error);
|
|
339
|
+
return Promise.reject(error);
|
|
340
|
+
}
|
|
341
|
+
return Promise.resolve(response);
|
|
318
342
|
})];
|
|
319
343
|
});
|
|
320
344
|
});
|
|
@@ -410,6 +434,23 @@ var BaseClient = /** @class */ (function () {
|
|
|
410
434
|
BaseClient.prototype.success = function () {
|
|
411
435
|
return function (response) { return response; };
|
|
412
436
|
};
|
|
437
|
+
/**
|
|
438
|
+
* Add an error-event listener.
|
|
439
|
+
* @param listener
|
|
440
|
+
* @returns {EventEmitter}
|
|
441
|
+
*/
|
|
442
|
+
BaseClient.prototype.addErrorEventListener = function (listener) {
|
|
443
|
+
var _a;
|
|
444
|
+
(_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.addListener(Events.ERROR, listener);
|
|
445
|
+
};
|
|
446
|
+
/**
|
|
447
|
+
* Remove an error-event listener.
|
|
448
|
+
* @param listener
|
|
449
|
+
*/
|
|
450
|
+
BaseClient.prototype.removeErrorEventListener = function (listener) {
|
|
451
|
+
var _a;
|
|
452
|
+
(_a = this.eventEmitter) === null || _a === void 0 ? void 0 : _a.removeListener(Events.ERROR, listener);
|
|
453
|
+
};
|
|
413
454
|
/**
|
|
414
455
|
* Retrieve component settings overview
|
|
415
456
|
* @returns {{Promise<ComponentSettingsIdentifier[]>}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opentap/runner-client",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.2.1-alpha.1.1",
|
|
4
4
|
"description": "This is the web client for the OpenTAP Runner.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"url": "git://github.com/opentap/runner-client-web.git"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
+
"@types/node": "^18.11.9",
|
|
29
30
|
"@types/uuid": "^8.3.4",
|
|
30
31
|
"@typescript-eslint/eslint-plugin": "^5.36.1",
|
|
31
32
|
"@typescript-eslint/parser": "^5.36.1",
|