@jbrowse/core 1.6.5 → 1.6.8
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/BaseFeatureWidget/BaseFeatureDetail.js +1 -3
- package/BaseFeatureWidget/index.d.ts +1 -1
- package/PluginLoader.d.ts +1 -1
- package/PluginManager.d.ts +4 -2
- package/ReExports/modules.d.ts +4 -2
- package/TextSearch/TextSearchManager.d.ts +2 -2
- package/assemblyManager/assemblyConfigSchema.d.ts +1 -1
- package/assemblyManager/assemblyManager.d.ts +22 -22
- package/configuration/index.d.ts +1 -1
- package/configuration/util.js +1 -5
- package/data_adapters/BaseAdapter.d.ts +2 -1
- package/data_adapters/BaseAdapter.js +90 -110
- package/data_adapters/CytobandAdapter.d.ts +1 -1
- package/package.json +2 -2
- package/pluggableElementTypes/RpcMethodType.js +1 -1
- package/pluggableElementTypes/models/InternetAccountModel.d.ts +103 -7
- package/pluggableElementTypes/models/InternetAccountModel.js +296 -10
- package/pluggableElementTypes/models/baseConnectionConfig.d.ts +1 -1
- package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +1 -1
- package/pluggableElementTypes/models/baseInternetAccountConfig.js +16 -1
- package/pluggableElementTypes/models/baseTrackConfig.d.ts +1 -1
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +1 -0
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +46 -22
- package/pluggableElementTypes/renderers/FeatureRendererType.js +14 -19
- package/rpc/BaseRpcDriver.d.ts +7 -8
- package/rpc/BaseRpcDriver.js +151 -87
- package/rpc/BaseRpcDriver.test.js +55 -36
- package/rpc/MainThreadRpcDriver.d.ts +1 -1
- package/rpc/MainThreadRpcDriver.js +25 -16
- package/rpc/RpcManager.d.ts +1 -1
- package/rpc/RpcManager.js +29 -11
- package/rpc/WebWorkerRpcDriver.d.ts +1 -1
- package/rpc/WebWorkerRpcDriver.js +43 -11
- package/rpc/configSchema.d.ts +1 -1
- package/rpc/configSchema.js +14 -6
- package/ui/ErrorMessage.js +23 -8
- package/ui/FileSelector/FileSelector.js +1 -1
- package/ui/ReturnToImportFormDialog.d.ts +9 -0
- package/ui/ReturnToImportFormDialog.js +63 -0
- package/ui/Tooltip.d.ts +1 -1
- package/ui/Tooltip.js +2 -2
- package/ui/index.d.ts +2 -0
- package/ui/index.js +18 -0
- package/ui/theme.d.ts +8 -0
- package/ui/theme.js +9 -0
- package/ui/theme.test.js +2 -2
- package/util/Base1DViewModel.d.ts +2 -0
- package/util/Base1DViewModel.js +9 -0
- package/util/index.d.ts +7 -4
- package/util/index.js +67 -31
- package/util/index.test.js +35 -14
- package/util/io/index.d.ts +2 -1
- package/util/io/index.js +97 -86
- package/util/offscreenCanvasPonyfill.js +2 -2
- package/util/simpleFeature.d.ts +4 -0
- package/util/tracks.js +4 -1
- package/util/types/index.d.ts +2 -2
- package/util/types/index.js +3 -3
package/rpc/BaseRpcDriver.js
CHANGED
|
@@ -30,6 +30,8 @@ var _util = require("../util");
|
|
|
30
30
|
|
|
31
31
|
var _remoteAbortSignals = require("./remoteAbortSignals");
|
|
32
32
|
|
|
33
|
+
var _configuration = require("../configuration");
|
|
34
|
+
|
|
33
35
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
34
36
|
|
|
35
37
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -53,27 +55,20 @@ function watchWorker(_x, _x2, _x3) {
|
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
function _watchWorker() {
|
|
56
|
-
_watchWorker = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
57
|
-
return _regenerator.default.wrap(function
|
|
58
|
+
_watchWorker = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6(worker, pingTime, rpcDriverClassName) {
|
|
59
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
58
60
|
while (1) {
|
|
59
|
-
switch (
|
|
61
|
+
switch (_context6.prev = _context6.next) {
|
|
60
62
|
case 0:
|
|
61
|
-
|
|
62
|
-
return worker.call('ping', [], {
|
|
63
|
-
timeout: 100000000,
|
|
64
|
-
rpcDriverClassName: rpcDriverClassName
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
case 2:
|
|
68
|
-
return _context3.abrupt("return", new Promise(function (_resolve, reject) {
|
|
63
|
+
return _context6.abrupt("return", new Promise(function (_resolve, reject) {
|
|
69
64
|
function delay() {
|
|
70
|
-
setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
71
|
-
return _regenerator.default.wrap(function
|
|
65
|
+
setTimeout( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
66
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
72
67
|
while (1) {
|
|
73
|
-
switch (
|
|
68
|
+
switch (_context5.prev = _context5.next) {
|
|
74
69
|
case 0:
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
_context5.prev = 0;
|
|
71
|
+
_context5.next = 3;
|
|
77
72
|
return worker.call('ping', [], {
|
|
78
73
|
timeout: pingTime * 2,
|
|
79
74
|
rpcDriverClassName: rpcDriverClassName
|
|
@@ -81,32 +76,32 @@ function _watchWorker() {
|
|
|
81
76
|
|
|
82
77
|
case 3:
|
|
83
78
|
delay();
|
|
84
|
-
|
|
79
|
+
_context5.next = 9;
|
|
85
80
|
break;
|
|
86
81
|
|
|
87
82
|
case 6:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
reject(
|
|
83
|
+
_context5.prev = 6;
|
|
84
|
+
_context5.t0 = _context5["catch"](0);
|
|
85
|
+
reject(_context5.t0);
|
|
91
86
|
|
|
92
87
|
case 9:
|
|
93
88
|
case "end":
|
|
94
|
-
return
|
|
89
|
+
return _context5.stop();
|
|
95
90
|
}
|
|
96
91
|
}
|
|
97
|
-
},
|
|
92
|
+
}, _callee5, null, [[0, 6]]);
|
|
98
93
|
})), pingTime);
|
|
99
94
|
}
|
|
100
95
|
|
|
101
96
|
delay();
|
|
102
97
|
}));
|
|
103
98
|
|
|
104
|
-
case
|
|
99
|
+
case 1:
|
|
105
100
|
case "end":
|
|
106
|
-
return
|
|
101
|
+
return _context6.stop();
|
|
107
102
|
}
|
|
108
103
|
}
|
|
109
|
-
},
|
|
104
|
+
}, _callee6);
|
|
110
105
|
}));
|
|
111
106
|
return _watchWorker.apply(this, arguments);
|
|
112
107
|
}
|
|
@@ -126,33 +121,51 @@ var LazyWorker = /*#__PURE__*/function () {
|
|
|
126
121
|
function LazyWorker(driver) {
|
|
127
122
|
(0, _classCallCheck2.default)(this, LazyWorker);
|
|
128
123
|
this.driver = driver;
|
|
129
|
-
(0, _defineProperty2.default)(this, "
|
|
124
|
+
(0, _defineProperty2.default)(this, "workerP", void 0);
|
|
130
125
|
}
|
|
131
126
|
|
|
132
127
|
(0, _createClass2.default)(LazyWorker, [{
|
|
133
128
|
key: "getWorker",
|
|
134
|
-
value: function
|
|
135
|
-
var
|
|
129
|
+
value: function () {
|
|
130
|
+
var _getWorker = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
131
|
+
var _this = this;
|
|
136
132
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
133
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
134
|
+
while (1) {
|
|
135
|
+
switch (_context.prev = _context.next) {
|
|
136
|
+
case 0:
|
|
137
|
+
if (!this.workerP) {
|
|
138
|
+
this.workerP = this.driver.makeWorker().then(function (worker) {
|
|
139
|
+
watchWorker(worker, _this.driver.maxPingTime, _this.driver.name).catch(function (error) {
|
|
140
|
+
if (worker) {
|
|
141
|
+
console.error('worker did not respond, killing and generating new one');
|
|
142
|
+
console.error(error);
|
|
143
|
+
worker.destroy();
|
|
144
|
+
worker.status = 'killed';
|
|
145
|
+
worker.error = error;
|
|
146
|
+
_this.workerP = undefined;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
return worker;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
143
152
|
|
|
144
|
-
|
|
153
|
+
return _context.abrupt("return", this.workerP);
|
|
145
154
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
155
|
+
case 2:
|
|
156
|
+
case "end":
|
|
157
|
+
return _context.stop();
|
|
158
|
+
}
|
|
149
159
|
}
|
|
150
|
-
});
|
|
151
|
-
|
|
160
|
+
}, _callee, this);
|
|
161
|
+
}));
|
|
162
|
+
|
|
163
|
+
function getWorker() {
|
|
164
|
+
return _getWorker.apply(this, arguments);
|
|
152
165
|
}
|
|
153
166
|
|
|
154
|
-
return
|
|
155
|
-
}
|
|
167
|
+
return getWorker;
|
|
168
|
+
}()
|
|
156
169
|
}]);
|
|
157
170
|
return LazyWorker;
|
|
158
171
|
}();
|
|
@@ -163,7 +176,6 @@ var BaseRpcDriver = /*#__PURE__*/function () {
|
|
|
163
176
|
(0, _defineProperty2.default)(this, "name", void 0);
|
|
164
177
|
(0, _defineProperty2.default)(this, "lastWorkerAssignment", -1);
|
|
165
178
|
(0, _defineProperty2.default)(this, "workerAssignments", new Map());
|
|
166
|
-
(0, _defineProperty2.default)(this, "workerCount", 0);
|
|
167
179
|
(0, _defineProperty2.default)(this, "workerPool", void 0);
|
|
168
180
|
(0, _defineProperty2.default)(this, "maxPingTime", 30000);
|
|
169
181
|
(0, _defineProperty2.default)(this, "workerCheckFrequency", 5000);
|
|
@@ -174,19 +186,19 @@ var BaseRpcDriver = /*#__PURE__*/function () {
|
|
|
174
186
|
|
|
175
187
|
(0, _createClass2.default)(BaseRpcDriver, [{
|
|
176
188
|
key: "filterArgs",
|
|
177
|
-
value: function filterArgs(thing,
|
|
189
|
+
value: function filterArgs(thing, sessionId) {
|
|
178
190
|
var _this2 = this;
|
|
179
191
|
|
|
180
192
|
if (Array.isArray(thing)) {
|
|
181
193
|
return thing.filter(isClonable).map(function (t) {
|
|
182
|
-
return _this2.filterArgs(t,
|
|
194
|
+
return _this2.filterArgs(t, sessionId);
|
|
183
195
|
});
|
|
184
196
|
}
|
|
185
197
|
|
|
186
198
|
if ((0, _typeof2.default)(thing) === 'object' && thing !== null) {
|
|
187
199
|
// AbortSignals are specially handled
|
|
188
200
|
if (thing instanceof AbortSignal) {
|
|
189
|
-
return (0, _remoteAbortSignals.serializeAbortSignal)(thing, this.remoteAbort.bind(this,
|
|
201
|
+
return (0, _remoteAbortSignals.serializeAbortSignal)(thing, this.remoteAbort.bind(this, sessionId));
|
|
190
202
|
}
|
|
191
203
|
|
|
192
204
|
if ((0, _mobxStateTree.isStateTreeNode)(thing) && !(0, _mobxStateTree.isAlive)(thing)) {
|
|
@@ -206,7 +218,7 @@ var BaseRpcDriver = /*#__PURE__*/function () {
|
|
|
206
218
|
k = _ref2[0],
|
|
207
219
|
v = _ref2[1];
|
|
208
220
|
|
|
209
|
-
return [k, _this2.filterArgs(v,
|
|
221
|
+
return [k, _this2.filterArgs(v, sessionId)];
|
|
210
222
|
}));
|
|
211
223
|
}
|
|
212
224
|
|
|
@@ -214,22 +226,46 @@ var BaseRpcDriver = /*#__PURE__*/function () {
|
|
|
214
226
|
}
|
|
215
227
|
}, {
|
|
216
228
|
key: "remoteAbort",
|
|
217
|
-
value: function
|
|
218
|
-
var
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
229
|
+
value: function () {
|
|
230
|
+
var _remoteAbort = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(sessionId, functionName, signalId) {
|
|
231
|
+
var worker;
|
|
232
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
233
|
+
while (1) {
|
|
234
|
+
switch (_context2.prev = _context2.next) {
|
|
235
|
+
case 0:
|
|
236
|
+
_context2.next = 2;
|
|
237
|
+
return this.getWorker(sessionId);
|
|
238
|
+
|
|
239
|
+
case 2:
|
|
240
|
+
worker = _context2.sent;
|
|
241
|
+
worker.call(functionName, {
|
|
242
|
+
signalId: signalId
|
|
243
|
+
}, {
|
|
244
|
+
timeout: 1000000,
|
|
245
|
+
rpcDriverClassName: this.name
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
case 4:
|
|
249
|
+
case "end":
|
|
250
|
+
return _context2.stop();
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}, _callee2, this);
|
|
254
|
+
}));
|
|
255
|
+
|
|
256
|
+
function remoteAbort(_x4, _x5, _x6) {
|
|
257
|
+
return _remoteAbort.apply(this, arguments);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
return remoteAbort;
|
|
261
|
+
}()
|
|
226
262
|
}, {
|
|
227
263
|
key: "createWorkerPool",
|
|
228
264
|
value: function createWorkerPool() {
|
|
229
265
|
var _this3 = this;
|
|
230
266
|
|
|
231
267
|
var hardwareConcurrency = detectHardwareConcurrency();
|
|
232
|
-
var workerCount = this.workerCount ||
|
|
268
|
+
var workerCount = (0, _configuration.readConfObject)(this.config, 'workerCount') || (0, _util.clamp)(1, Math.max(1, hardwareConcurrency - 1), 5);
|
|
233
269
|
return (0, _toConsumableArray2.default)(new Array(workerCount)).map(function () {
|
|
234
270
|
return new LazyWorker(_this3);
|
|
235
271
|
});
|
|
@@ -247,30 +283,54 @@ var BaseRpcDriver = /*#__PURE__*/function () {
|
|
|
247
283
|
}
|
|
248
284
|
}, {
|
|
249
285
|
key: "getWorker",
|
|
250
|
-
value: function
|
|
251
|
-
var
|
|
252
|
-
|
|
286
|
+
value: function () {
|
|
287
|
+
var _getWorker2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(sessionId) {
|
|
288
|
+
var workers, workerNumber, workerAssignment, worker;
|
|
289
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
290
|
+
while (1) {
|
|
291
|
+
switch (_context3.prev = _context3.next) {
|
|
292
|
+
case 0:
|
|
293
|
+
workers = this.getWorkerPool();
|
|
294
|
+
workerNumber = this.workerAssignments.get(sessionId);
|
|
295
|
+
|
|
296
|
+
if (workerNumber === undefined) {
|
|
297
|
+
workerAssignment = (this.lastWorkerAssignment + 1) % workers.length;
|
|
298
|
+
this.workerAssignments.set(sessionId, workerAssignment);
|
|
299
|
+
this.lastWorkerAssignment = workerAssignment;
|
|
300
|
+
workerNumber = workerAssignment;
|
|
301
|
+
} // console.log(`${sessionId} -> worker ${workerNumber}`)
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
worker = workers[workerNumber].getWorker();
|
|
305
|
+
|
|
306
|
+
if (worker) {
|
|
307
|
+
_context3.next = 6;
|
|
308
|
+
break;
|
|
309
|
+
}
|
|
253
310
|
|
|
254
|
-
|
|
255
|
-
var workerAssignment = (this.lastWorkerAssignment + 1) % workers.length;
|
|
256
|
-
this.workerAssignments.set(sessionId, workerAssignment);
|
|
257
|
-
this.lastWorkerAssignment = workerAssignment;
|
|
258
|
-
workerNumber = workerAssignment;
|
|
259
|
-
} // console.log(`${sessionId} -> worker ${workerNumber}`)
|
|
311
|
+
throw new Error('no web workers registered for RPC');
|
|
260
312
|
|
|
313
|
+
case 6:
|
|
314
|
+
return _context3.abrupt("return", worker);
|
|
261
315
|
|
|
262
|
-
|
|
316
|
+
case 7:
|
|
317
|
+
case "end":
|
|
318
|
+
return _context3.stop();
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}, _callee3, this);
|
|
322
|
+
}));
|
|
263
323
|
|
|
264
|
-
|
|
265
|
-
|
|
324
|
+
function getWorker(_x7) {
|
|
325
|
+
return _getWorker2.apply(this, arguments);
|
|
266
326
|
}
|
|
267
327
|
|
|
268
|
-
return
|
|
269
|
-
}
|
|
328
|
+
return getWorker;
|
|
329
|
+
}()
|
|
270
330
|
}, {
|
|
271
331
|
key: "call",
|
|
272
332
|
value: function () {
|
|
273
|
-
var _call = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
333
|
+
var _call = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(pluginManager, sessionId, functionName, args) {
|
|
274
334
|
var _this4 = this;
|
|
275
335
|
|
|
276
336
|
var options,
|
|
@@ -283,15 +343,15 @@ var BaseRpcDriver = /*#__PURE__*/function () {
|
|
|
283
343
|
killedCheckInterval,
|
|
284
344
|
killedP,
|
|
285
345
|
resultP,
|
|
286
|
-
|
|
287
|
-
return _regenerator.default.wrap(function
|
|
346
|
+
_args4 = arguments;
|
|
347
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
288
348
|
while (1) {
|
|
289
|
-
switch (
|
|
349
|
+
switch (_context4.prev = _context4.next) {
|
|
290
350
|
case 0:
|
|
291
|
-
options =
|
|
351
|
+
options = _args4.length > 4 && _args4[4] !== undefined ? _args4[4] : {};
|
|
292
352
|
|
|
293
353
|
if (sessionId) {
|
|
294
|
-
|
|
354
|
+
_context4.next = 3;
|
|
295
355
|
break;
|
|
296
356
|
}
|
|
297
357
|
|
|
@@ -299,14 +359,18 @@ var BaseRpcDriver = /*#__PURE__*/function () {
|
|
|
299
359
|
|
|
300
360
|
case 3:
|
|
301
361
|
done = false;
|
|
302
|
-
|
|
362
|
+
_context4.next = 6;
|
|
363
|
+
return this.getWorker(sessionId);
|
|
364
|
+
|
|
365
|
+
case 6:
|
|
366
|
+
worker = _context4.sent;
|
|
303
367
|
rpcMethod = pluginManager.getRpcMethodType(functionName);
|
|
304
|
-
|
|
368
|
+
_context4.next = 10;
|
|
305
369
|
return rpcMethod.serializeArguments(args, this.name);
|
|
306
370
|
|
|
307
|
-
case
|
|
308
|
-
serializedArgs =
|
|
309
|
-
filteredAndSerializedArgs = this.filterArgs(serializedArgs,
|
|
371
|
+
case 10:
|
|
372
|
+
serializedArgs = _context4.sent;
|
|
373
|
+
filteredAndSerializedArgs = this.filterArgs(serializedArgs, sessionId); // now actually call the worker
|
|
310
374
|
|
|
311
375
|
callP = worker.call(functionName, filteredAndSerializedArgs, _objectSpread({
|
|
312
376
|
timeout: 5 * 60 * 1000,
|
|
@@ -334,17 +398,17 @@ var BaseRpcDriver = /*#__PURE__*/function () {
|
|
|
334
398
|
// killed before the call could return
|
|
335
399
|
|
|
336
400
|
resultP = Promise.race([callP, killedP]);
|
|
337
|
-
return
|
|
401
|
+
return _context4.abrupt("return", rpcMethod.deserializeReturn(resultP, args, this.name));
|
|
338
402
|
|
|
339
|
-
case
|
|
403
|
+
case 16:
|
|
340
404
|
case "end":
|
|
341
|
-
return
|
|
405
|
+
return _context4.stop();
|
|
342
406
|
}
|
|
343
407
|
}
|
|
344
|
-
},
|
|
408
|
+
}, _callee4, this);
|
|
345
409
|
}));
|
|
346
410
|
|
|
347
|
-
function call(
|
|
411
|
+
function call(_x8, _x9, _x10, _x11) {
|
|
348
412
|
return _call.apply(this, arguments);
|
|
349
413
|
}
|
|
350
414
|
|
|
@@ -333,9 +333,28 @@ var MockRpcDriver = /*#__PURE__*/function (_BaseRpcDriver) {
|
|
|
333
333
|
|
|
334
334
|
(0, _createClass2.default)(MockRpcDriver, [{
|
|
335
335
|
key: "makeWorker",
|
|
336
|
-
value: function
|
|
337
|
-
|
|
338
|
-
|
|
336
|
+
value: function () {
|
|
337
|
+
var _makeWorker = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
338
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
339
|
+
while (1) {
|
|
340
|
+
switch (_context5.prev = _context5.next) {
|
|
341
|
+
case 0:
|
|
342
|
+
return _context5.abrupt("return", new MockWorkerHandle());
|
|
343
|
+
|
|
344
|
+
case 1:
|
|
345
|
+
case "end":
|
|
346
|
+
return _context5.stop();
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}, _callee5);
|
|
350
|
+
}));
|
|
351
|
+
|
|
352
|
+
function makeWorker() {
|
|
353
|
+
return _makeWorker.apply(this, arguments);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
return makeWorker;
|
|
357
|
+
}()
|
|
339
358
|
}]);
|
|
340
359
|
return MockRpcDriver;
|
|
341
360
|
}(_BaseRpcDriver2.default);
|
|
@@ -362,16 +381,16 @@ var MockRendererTimeout = /*#__PURE__*/function (_RpcMethodType) {
|
|
|
362
381
|
(0, _createClass2.default)(MockRendererTimeout, [{
|
|
363
382
|
key: "execute",
|
|
364
383
|
value: function () {
|
|
365
|
-
var _execute = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
366
|
-
return _regenerator.default.wrap(function
|
|
384
|
+
var _execute = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
385
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
367
386
|
while (1) {
|
|
368
|
-
switch (
|
|
387
|
+
switch (_context6.prev = _context6.next) {
|
|
369
388
|
case 0:
|
|
370
389
|
case "end":
|
|
371
|
-
return
|
|
390
|
+
return _context6.stop();
|
|
372
391
|
}
|
|
373
392
|
}
|
|
374
|
-
},
|
|
393
|
+
}, _callee6);
|
|
375
394
|
}));
|
|
376
395
|
|
|
377
396
|
function execute() {
|
|
@@ -408,16 +427,16 @@ var MockRendererShort = /*#__PURE__*/function (_RpcMethodType2) {
|
|
|
408
427
|
(0, _createClass2.default)(MockRendererShort, [{
|
|
409
428
|
key: "execute",
|
|
410
429
|
value: function () {
|
|
411
|
-
var _execute2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
412
|
-
return _regenerator.default.wrap(function
|
|
430
|
+
var _execute2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
431
|
+
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
413
432
|
while (1) {
|
|
414
|
-
switch (
|
|
433
|
+
switch (_context7.prev = _context7.next) {
|
|
415
434
|
case 0:
|
|
416
435
|
case "end":
|
|
417
|
-
return
|
|
436
|
+
return _context7.stop();
|
|
418
437
|
}
|
|
419
438
|
}
|
|
420
|
-
},
|
|
439
|
+
}, _callee7);
|
|
421
440
|
}));
|
|
422
441
|
|
|
423
442
|
function execute() {
|
|
@@ -431,11 +450,11 @@ var MockRendererShort = /*#__PURE__*/function (_RpcMethodType2) {
|
|
|
431
450
|
}(_RpcMethodType3.default);
|
|
432
451
|
|
|
433
452
|
exports.MockRendererShort = MockRendererShort;
|
|
434
|
-
test('test RPC driver operation timeout and worker replace', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
453
|
+
test('test RPC driver operation timeout and worker replace', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
435
454
|
var config, driver, pluginManager;
|
|
436
|
-
return _regenerator.default.wrap(function
|
|
455
|
+
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
437
456
|
while (1) {
|
|
438
|
-
switch (
|
|
457
|
+
switch (_context8.prev = _context8.next) {
|
|
439
458
|
case 0:
|
|
440
459
|
console.error = jest.fn();
|
|
441
460
|
console.warn = jest.fn();
|
|
@@ -452,35 +471,35 @@ test('test RPC driver operation timeout and worker replace', /*#__PURE__*/(0, _a
|
|
|
452
471
|
return new MockRendererShort(pluginManager);
|
|
453
472
|
});
|
|
454
473
|
pluginManager.createPluggableElements();
|
|
455
|
-
|
|
456
|
-
|
|
474
|
+
_context8.prev = 9;
|
|
475
|
+
_context8.next = 12;
|
|
457
476
|
return driver.call(pluginManager, 'sessionId', 'MockRenderTimeout', {}, {});
|
|
458
477
|
|
|
459
478
|
case 12:
|
|
460
|
-
|
|
479
|
+
_context8.next = 17;
|
|
461
480
|
break;
|
|
462
481
|
|
|
463
482
|
case 14:
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
expect("".concat(
|
|
483
|
+
_context8.prev = 14;
|
|
484
|
+
_context8.t0 = _context8["catch"](9);
|
|
485
|
+
expect("".concat(_context8.t0)).toMatch(/operation timed out/);
|
|
467
486
|
|
|
468
487
|
case 17:
|
|
469
|
-
|
|
488
|
+
_context8.next = 19;
|
|
470
489
|
return driver.call(pluginManager, 'sessionId', 'MockRenderShort', {}, {});
|
|
471
490
|
|
|
472
491
|
case 19:
|
|
473
492
|
case "end":
|
|
474
|
-
return
|
|
493
|
+
return _context8.stop();
|
|
475
494
|
}
|
|
476
495
|
}
|
|
477
|
-
},
|
|
496
|
+
}, _callee8, null, [[9, 14]]);
|
|
478
497
|
})));
|
|
479
|
-
test('remote abort', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
498
|
+
test('remote abort', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
|
|
480
499
|
var config, driver, pluginManager, controller, resP;
|
|
481
|
-
return _regenerator.default.wrap(function
|
|
500
|
+
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
482
501
|
while (1) {
|
|
483
|
-
switch (
|
|
502
|
+
switch (_context9.prev = _context9.next) {
|
|
484
503
|
case 0:
|
|
485
504
|
console.error = jest.fn();
|
|
486
505
|
console.warn = jest.fn();
|
|
@@ -494,28 +513,28 @@ test('remote abort', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/
|
|
|
494
513
|
return new MockRendererShort(pluginManager);
|
|
495
514
|
});
|
|
496
515
|
pluginManager.createPluggableElements();
|
|
497
|
-
|
|
516
|
+
_context9.prev = 8;
|
|
498
517
|
controller = new AbortController();
|
|
499
518
|
resP = driver.call(pluginManager, 'sessionId', 'MockRenderShort', {}, {
|
|
500
519
|
signal: controller.signal
|
|
501
520
|
});
|
|
502
521
|
controller.abort();
|
|
503
|
-
|
|
522
|
+
_context9.next = 14;
|
|
504
523
|
return resP;
|
|
505
524
|
|
|
506
525
|
case 14:
|
|
507
|
-
|
|
526
|
+
_context9.next = 19;
|
|
508
527
|
break;
|
|
509
528
|
|
|
510
529
|
case 16:
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
expect("".concat(
|
|
530
|
+
_context9.prev = 16;
|
|
531
|
+
_context9.t0 = _context9["catch"](8);
|
|
532
|
+
expect("".concat(_context9.t0)).toMatch(/abort/);
|
|
514
533
|
|
|
515
534
|
case 19:
|
|
516
535
|
case "end":
|
|
517
|
-
return
|
|
536
|
+
return _context9.stop();
|
|
518
537
|
}
|
|
519
538
|
}
|
|
520
|
-
},
|
|
539
|
+
}, _callee9, null, [[8, 16]]);
|
|
521
540
|
})));
|
|
@@ -11,7 +11,7 @@ declare class DummyHandle {
|
|
|
11
11
|
*/
|
|
12
12
|
export default class MainThreadRpcDriver extends BaseRpcDriver {
|
|
13
13
|
name: string;
|
|
14
|
-
makeWorker: () => DummyHandle
|
|
14
|
+
makeWorker: () => Promise<DummyHandle>;
|
|
15
15
|
constructor(args: RpcDriverConstructorArgs);
|
|
16
16
|
call(pluginManager: PluginManager, sessionId: string, functionName: string, args: {}): Promise<unknown>;
|
|
17
17
|
}
|
|
@@ -89,25 +89,34 @@ var MainThreadRpcDriver = /*#__PURE__*/function (_BaseRpcDriver) {
|
|
|
89
89
|
_this = _super.call(this, args);
|
|
90
90
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "name", 'MainThreadRpcDriver');
|
|
91
91
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "makeWorker", void 0);
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
_this.makeWorker = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
93
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
94
|
+
while (1) {
|
|
95
|
+
switch (_context2.prev = _context2.next) {
|
|
96
|
+
case 0:
|
|
97
|
+
return _context2.abrupt("return", new DummyHandle());
|
|
98
|
+
|
|
99
|
+
case 1:
|
|
100
|
+
case "end":
|
|
101
|
+
return _context2.stop();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}, _callee2);
|
|
105
|
+
}));
|
|
97
106
|
return _this;
|
|
98
107
|
}
|
|
99
108
|
|
|
100
109
|
(0, _createClass2.default)(MainThreadRpcDriver, [{
|
|
101
110
|
key: "call",
|
|
102
111
|
value: function () {
|
|
103
|
-
var _call2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
112
|
+
var _call2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(pluginManager, sessionId, functionName, args) {
|
|
104
113
|
var rpcMethod, serializedArgs, result;
|
|
105
|
-
return _regenerator.default.wrap(function
|
|
114
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
106
115
|
while (1) {
|
|
107
|
-
switch (
|
|
116
|
+
switch (_context3.prev = _context3.next) {
|
|
108
117
|
case 0:
|
|
109
118
|
if (sessionId) {
|
|
110
|
-
|
|
119
|
+
_context3.next = 2;
|
|
111
120
|
break;
|
|
112
121
|
}
|
|
113
122
|
|
|
@@ -115,24 +124,24 @@ var MainThreadRpcDriver = /*#__PURE__*/function (_BaseRpcDriver) {
|
|
|
115
124
|
|
|
116
125
|
case 2:
|
|
117
126
|
rpcMethod = pluginManager.getRpcMethodType(functionName);
|
|
118
|
-
|
|
127
|
+
_context3.next = 5;
|
|
119
128
|
return rpcMethod.serializeArguments(args, this.name);
|
|
120
129
|
|
|
121
130
|
case 5:
|
|
122
|
-
serializedArgs =
|
|
123
|
-
|
|
131
|
+
serializedArgs = _context3.sent;
|
|
132
|
+
_context3.next = 8;
|
|
124
133
|
return rpcMethod.execute(serializedArgs, this.name);
|
|
125
134
|
|
|
126
135
|
case 8:
|
|
127
|
-
result =
|
|
128
|
-
return
|
|
136
|
+
result = _context3.sent;
|
|
137
|
+
return _context3.abrupt("return", rpcMethod.deserializeReturn(result, args, this.name));
|
|
129
138
|
|
|
130
139
|
case 10:
|
|
131
140
|
case "end":
|
|
132
|
-
return
|
|
141
|
+
return _context3.stop();
|
|
133
142
|
}
|
|
134
143
|
}
|
|
135
|
-
},
|
|
144
|
+
}, _callee3, this);
|
|
136
145
|
}));
|
|
137
146
|
|
|
138
147
|
function call(_x3, _x4, _x5, _x6) {
|
package/rpc/RpcManager.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export default class RpcManager {
|
|
|
15
15
|
pluginManager: PluginManager;
|
|
16
16
|
mainConfiguration: AnyConfigurationModel;
|
|
17
17
|
backendConfigurations: BackendConfigurations;
|
|
18
|
-
static configSchema: import("../configuration
|
|
18
|
+
static configSchema: import("../configuration").AnyConfigurationSchemaType;
|
|
19
19
|
driverObjects: Map<string, DriverClass>;
|
|
20
20
|
constructor(pluginManager: PluginManager, mainConfiguration: AnyConfigurationModel, backendConfigurations: BackendConfigurations);
|
|
21
21
|
getDriver(backendName: keyof typeof DriverClasses): DriverClass;
|