@adminide-stack/extension-api 11.0.1-alpha.0 → 11.0.1-alpha.11
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/connections/jsonrpc2/connection.js +507 -525
- package/lib/connections/jsonrpc2/connection.js.map +1 -0
- package/lib/connections/jsonrpc2/events.js +100 -100
- package/lib/connections/jsonrpc2/events.js.map +1 -0
- package/lib/connections/jsonrpc2/linkedMap.js +248 -246
- package/lib/connections/jsonrpc2/linkedMap.js.map +1 -0
- package/lib/connections/jsonrpc2/messages.js +36 -40
- package/lib/connections/jsonrpc2/messages.js.map +1 -0
- package/lib/connections/jsonrpc2/test-helper.js +35 -21
- package/lib/connections/jsonrpc2/test-helper.js.map +1 -0
- package/lib/connections/jsonrpc2/trace.js +70 -82
- package/lib/connections/jsonrpc2/trace.js.map +1 -0
- package/lib/connections/jsonrpc2/transport.js +56 -56
- package/lib/connections/jsonrpc2/transport.js.map +1 -0
- package/lib/connections/jsonrpc2/transports/webWorker.js +80 -88
- package/lib/connections/jsonrpc2/transports/webWorker.js.map +1 -0
- package/lib/connections/proxy/proxy.js +46 -47
- package/lib/connections/proxy/proxy.js.map +1 -0
- package/lib/connections/remote-rpc/browser-remote-rpc.js +55 -54
- package/lib/connections/remote-rpc/browser-remote-rpc.js.map +1 -0
- package/lib/connections/remote-rpc/rxjs-websockets.js +68 -68
- package/lib/connections/remote-rpc/rxjs-websockets.js.map +1 -0
- package/lib/constants/action-types.js +27 -27
- package/lib/constants/action-types.js.map +1 -0
- package/lib/constants/types.js +7 -7
- package/lib/constants/types.js.map +1 -0
- package/lib/core/expr/evaluator.js +103 -104
- package/lib/core/expr/evaluator.js.map +1 -0
- package/lib/core/expr/lexer.js +366 -361
- package/lib/core/expr/lexer.js.map +1 -0
- package/lib/core/expr/parser.js +228 -217
- package/lib/core/expr/parser.js.map +1 -0
- package/lib/core/types/ext-host-types.js +53 -54
- package/lib/core/types/ext-host-types.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -0
- package/lib/interfaces/contributions/contribution.js +40 -40
- package/lib/interfaces/contributions/contribution.js.map +1 -0
- package/lib/interfaces/graphql.js +1 -1
- package/lib/interfaces/graphql.js.map +1 -0
- package/lib/interfaces/model.js +3 -3
- package/lib/interfaces/model.js.map +1 -0
- package/lib/interfaces/text-document.js +76 -77
- package/lib/interfaces/text-document.js.map +1 -0
- package/lib/interfaces/webview/webview.js +3 -3
- package/lib/interfaces/webview/webview.js.map +1 -0
- package/lib/middlewares/extensionController.js +9 -5
- package/lib/middlewares/extensionController.js.map +1 -0
- package/lib/protocol/client.protocol.js +2 -2
- package/lib/protocol/client.protocol.js.map +1 -0
- package/lib/protocol/common.protocol.js +50 -48
- package/lib/protocol/common.protocol.js.map +1 -0
- package/lib/protocol/editor-missing-types.js +4 -4
- package/lib/protocol/editor-missing-types.js.map +1 -0
- package/lib/protocol/proxy-identifier.js +39 -39
- package/lib/protocol/proxy-identifier.js.map +1 -0
- package/lib/protocol/rpc-logger.js +39 -43
- package/lib/protocol/rpc-logger.js.map +1 -0
- package/lib/protocol/rpc-protocol.js +736 -724
- package/lib/protocol/rpc-protocol.js.map +1 -0
- package/lib/protocol/server.protocol.js +22 -22
- package/lib/protocol/server.protocol.js.map +1 -0
- package/lib/protocol/shared/editor.js +17 -17
- package/lib/protocol/shared/editor.js.map +1 -0
- package/lib/protocol/temporary-types.js +16 -16
- package/lib/protocol/temporary-types.js.map +1 -0
- package/lib/protocol/utils/lazy-promise.js +60 -61
- package/lib/protocol/utils/lazy-promise.js.map +1 -0
- package/lib/react/components/view-component/ViewComponent.js +31 -26
- package/lib/react/components/view-component/ViewComponent.js.map +1 -0
- package/lib/react/index.js +1 -1
- package/lib/react/index.js.map +1 -0
- package/lib/react/useExtensionController.js +12 -10
- package/lib/react/useExtensionController.js.map +1 -0
- package/lib/utils/abortable-rx.js +73 -70
- package/lib/utils/abortable-rx.js.map +1 -0
- package/lib/utils/errors.js +10 -10
- package/lib/utils/errors.js.map +1 -0
- package/lib/utils/extensions.js +11 -11
- package/lib/utils/extensions.js.map +1 -0
- package/lib/utils/helper.test.js +7 -4
- package/lib/utils/helper.test.js.map +1 -0
- package/lib/utils/paths-util.js +79 -82
- package/lib/utils/paths-util.js.map +1 -0
- package/lib/utils/rxjs/combineLatestOrDefault.js +72 -70
- package/lib/utils/rxjs/combineLatestOrDefault.js.map +1 -0
- package/lib/utils/util.js +24 -25
- package/lib/utils/util.js.map +1 -0
- package/package.json +5 -5
@@ -3,27 +3,41 @@ import {AbstractMessageWriter,AbstractMessageReader}from'./transport.js';/**
|
|
3
3
|
* other as the client.
|
4
4
|
*/
|
5
5
|
function createMessageTransports() {
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
const {
|
7
|
+
reader: reader1,
|
8
|
+
writer: writer1
|
9
|
+
} = createMessagePipe();
|
10
|
+
const {
|
11
|
+
reader: reader2,
|
12
|
+
writer: writer2
|
13
|
+
} = createMessagePipe();
|
14
|
+
return [{
|
15
|
+
reader: reader1,
|
16
|
+
writer: writer2
|
17
|
+
}, {
|
18
|
+
reader: reader2,
|
19
|
+
writer: writer1
|
20
|
+
}];
|
9
21
|
}
|
10
22
|
/** Creates a single set of transports that are connected to each other. */
|
11
23
|
function createMessagePipe() {
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
let readerCallback;
|
25
|
+
const reader = new class extends AbstractMessageReader {
|
26
|
+
listen(callback) {
|
27
|
+
readerCallback = callback;
|
28
|
+
}
|
29
|
+
}();
|
30
|
+
const writer = new class extends AbstractMessageWriter {
|
31
|
+
write(msg) {
|
32
|
+
if (readerCallback) {
|
33
|
+
readerCallback(msg);
|
34
|
+
} else {
|
35
|
+
throw new Error('reader has no listener');
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}();
|
39
|
+
return {
|
40
|
+
reader,
|
41
|
+
writer
|
42
|
+
};
|
43
|
+
}export{createMessagePipe,createMessageTransports};//# sourceMappingURL=test-helper.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"test-helper.js","sources":["../../../src/connections/jsonrpc2/test-helper.ts"],"sourcesContent":[null],"names":[],"mappings":"yEAIA;;;AAGG;SACa,uBAAuB,GAAA;AACnC,EAAA,MAAA;AACA,IAAA,MAAM,EAAE,OAAQ;IAChB,MAAO,EAAC;AACZ,GAAC,GAAA,iBAAA,EAAA;AAED,EAA2E,MAAA;AAC3E,IAAA,eAAiC;AAC7B,IAAA;AACA,GAAA,GAAA,iBAAkC,EAAA;AACvB,EAAA,OAAA,CAAA;YACH,OAAc;UACjB,EAAA;AACJ,GAAA,EAAA;AACD,IAAA,MAAM,EAAM,OAAkB;AACnB,IAAA,MAAA,EAAA;;;;0BAGK,GAAA;AACJ,EAAA,IAAA,cAAA;cACH,GAAA,IAAA,cAAA,qBAAA,CAAA;UACJ,CAAA,QAAA,EAAA;AACJ,MAAA,cAAE,GAAA,QAAA;AACH;AACJ,GAAC,EAAA;;;;;;;;;;;;;;"}
|
@@ -1,90 +1,78 @@
|
|
1
1
|
/** A tracer that implements the Tracer interface with noop methods. */
|
2
2
|
const noopTracer = {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
3
|
+
log: () => void 0,
|
4
|
+
requestSent: () => void 0,
|
5
|
+
requestReceived: () => void 0,
|
6
|
+
notificationSent: () => void 0,
|
7
|
+
notificationReceived: () => void 0,
|
8
|
+
responseSent: () => void 0,
|
9
|
+
responseAborted: () => void 0,
|
10
|
+
responseReceived: () => void 0,
|
11
|
+
unknownResponseReceived: () => void 0
|
12
12
|
};
|
13
13
|
/** A tracer that implements the Tracer interface with console API calls, intended for a web browser. */
|
14
14
|
class BrowserConsoleTracer {
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
name;
|
16
|
+
constructor(name) {
|
17
|
+
this.name = name;
|
18
|
+
}
|
19
|
+
prefix(level, label, title) {
|
20
|
+
let color;
|
21
|
+
let backgroundColor;
|
22
|
+
if (level === 'info') {
|
23
|
+
color = '#000';
|
24
|
+
backgroundColor = '#eee';
|
25
|
+
} else {
|
26
|
+
color = 'white';
|
27
|
+
backgroundColor = 'red';
|
18
28
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
backgroundColor = 'red';
|
29
|
-
}
|
30
|
-
return [
|
31
|
-
'%c%s%c %s%c%s%c',
|
32
|
-
`font-weight:bold;background-color:#d8f7ff;color:black`,
|
33
|
-
this.name,
|
34
|
-
'',
|
35
|
-
label,
|
36
|
-
`background-color:${backgroundColor};color:${color};font-weight:bold`,
|
37
|
-
title,
|
38
|
-
'',
|
39
|
-
];
|
29
|
+
return ['%c%s%c %s%c%s%c', `font-weight:bold;background-color:#d8f7ff;color:black`, this.name, '', label, `background-color:${backgroundColor};color:${color};font-weight:bold`, title, ''];
|
30
|
+
}
|
31
|
+
log(message, details) {
|
32
|
+
if (details) {
|
33
|
+
console.groupCollapsed(...this.prefix('info', 'log', ''), message);
|
34
|
+
console.log(details);
|
35
|
+
console.groupEnd();
|
36
|
+
} else {
|
37
|
+
console.log(...this.prefix('info', 'log', ''), message);
|
40
38
|
}
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
39
|
+
}
|
40
|
+
requestSent(message) {
|
41
|
+
console.log(...this.prefix('info', `◀◀ sent request #${message.id}: `, message.method), message.params);
|
42
|
+
}
|
43
|
+
requestReceived(message) {
|
44
|
+
console.log(...this.prefix('info', `▶▶ recv request #${message.id}: `, message.method), message.params);
|
45
|
+
}
|
46
|
+
notificationSent(message) {
|
47
|
+
console.log(...this.prefix('info', `◀◀ sent notif: `, message.method), message.params);
|
48
|
+
}
|
49
|
+
notificationReceived(message) {
|
50
|
+
console.log(...this.prefix('info', `▶▶ recv notif: `, message.method), message.params);
|
51
|
+
}
|
52
|
+
responseSent(message, request, startTime) {
|
53
|
+
const prefix = this.prefix(message.error ? 'error' : 'info', `◀▶ sent response #${message.id}: `, typeof request === 'string' ? request : request.method);
|
54
|
+
console.groupCollapsed(...prefix);
|
55
|
+
console.log('Response:', message);
|
56
|
+
console.log('Request:', request);
|
57
|
+
console.log('Duration: %d msec', Date.now() - startTime);
|
58
|
+
console.groupEnd();
|
59
|
+
}
|
60
|
+
responseAborted(_message, request, _abortMessage) {
|
61
|
+
console.log(...this.prefix('info', '× abort: ', request.method));
|
62
|
+
}
|
63
|
+
responseReceived(message, request, startTime) {
|
64
|
+
const prefix = this.prefix(message.error ? 'error' : 'info', `◀▶ recv response #${message.id}: `, typeof request === 'string' ? request : request.method);
|
65
|
+
if (typeof request === 'string') {
|
66
|
+
console.log(...prefix, message.error || message.result);
|
67
|
+
} else {
|
68
|
+
console.groupCollapsed(...prefix);
|
69
|
+
console.log('Response:', message);
|
70
|
+
console.log('Request:', request);
|
71
|
+
console.log('Duration: %d msec', Date.now() - startTime);
|
72
|
+
console.groupEnd();
|
50
73
|
}
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
}
|
57
|
-
notificationSent(message) {
|
58
|
-
console.log(...this.prefix('info', `◀◀ sent notif: `, message.method), message.params);
|
59
|
-
}
|
60
|
-
notificationReceived(message) {
|
61
|
-
console.log(...this.prefix('info', `▶▶ recv notif: `, message.method), message.params);
|
62
|
-
}
|
63
|
-
responseSent(message, request, startTime) {
|
64
|
-
const prefix = this.prefix(message.error ? 'error' : 'info', `◀▶ sent response #${message.id}: `, typeof request === 'string' ? request : request.method);
|
65
|
-
console.groupCollapsed(...prefix);
|
66
|
-
console.log('Response:', message);
|
67
|
-
console.log('Request:', request);
|
68
|
-
console.log('Duration: %d msec', Date.now() - startTime);
|
69
|
-
console.groupEnd();
|
70
|
-
}
|
71
|
-
responseAborted(_message, request, _abortMessage) {
|
72
|
-
console.log(...this.prefix('info', '× abort: ', request.method));
|
73
|
-
}
|
74
|
-
responseReceived(message, request, startTime) {
|
75
|
-
const prefix = this.prefix(message.error ? 'error' : 'info', `◀▶ recv response #${message.id}: `, typeof request === 'string' ? request : request.method);
|
76
|
-
if (typeof request === 'string') {
|
77
|
-
console.log(...prefix, message.error || message.result);
|
78
|
-
}
|
79
|
-
else {
|
80
|
-
console.groupCollapsed(...prefix);
|
81
|
-
console.log('Response:', message);
|
82
|
-
console.log('Request:', request);
|
83
|
-
console.log('Duration: %d msec', Date.now() - startTime);
|
84
|
-
console.groupEnd();
|
85
|
-
}
|
86
|
-
}
|
87
|
-
unknownResponseReceived(message) {
|
88
|
-
console.log(...this.prefix('error', 'UNKNOWN', ''), message);
|
89
|
-
}
|
90
|
-
}export{BrowserConsoleTracer,noopTracer};
|
74
|
+
}
|
75
|
+
unknownResponseReceived(message) {
|
76
|
+
console.log(...this.prefix('error', 'UNKNOWN', ''), message);
|
77
|
+
}
|
78
|
+
}export{BrowserConsoleTracer,noopTracer};//# sourceMappingURL=trace.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"trace.js","sources":["../../../src/connections/jsonrpc2/trace.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
@@ -1,59 +1,59 @@
|
|
1
1
|
import {Emitter}from'./events.js';class AbstractMessageReader {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
2
|
+
errorEmitter;
|
3
|
+
closeEmitter;
|
4
|
+
constructor() {
|
5
|
+
this.errorEmitter = new Emitter();
|
6
|
+
this.closeEmitter = new Emitter();
|
7
|
+
}
|
8
|
+
unsubscribe() {
|
9
|
+
this.errorEmitter.unsubscribe();
|
10
|
+
this.closeEmitter.unsubscribe();
|
11
|
+
}
|
12
|
+
get onError() {
|
13
|
+
return this.errorEmitter.event;
|
14
|
+
}
|
15
|
+
fireError(error) {
|
16
|
+
this.errorEmitter.fire(this.asError(error));
|
17
|
+
}
|
18
|
+
get onClose() {
|
19
|
+
return this.closeEmitter.event;
|
20
|
+
}
|
21
|
+
fireClose() {
|
22
|
+
this.closeEmitter.fire(undefined);
|
23
|
+
}
|
24
|
+
asError(error) {
|
25
|
+
if (error instanceof Error) {
|
26
|
+
return error;
|
27
|
+
}
|
28
|
+
throw error;
|
29
|
+
// return new Error(
|
30
|
+
// `Reader received error. Reason: ${typeof error.message === 'string' ? error.message : 'unknown'}`
|
31
|
+
// )
|
32
|
+
}
|
33
33
|
}
|
34
34
|
class AbstractMessageWriter {
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
}export{AbstractMessageReader,AbstractMessageWriter}
|
35
|
+
errorEmitter = new Emitter();
|
36
|
+
closeEmitter = new Emitter();
|
37
|
+
unsubscribe() {
|
38
|
+
this.errorEmitter.unsubscribe();
|
39
|
+
this.closeEmitter.unsubscribe();
|
40
|
+
}
|
41
|
+
get onError() {
|
42
|
+
return this.errorEmitter.event;
|
43
|
+
}
|
44
|
+
fireError(error, message, count) {
|
45
|
+
this.errorEmitter.fire([this.asError(error), message, count]);
|
46
|
+
}
|
47
|
+
get onClose() {
|
48
|
+
return this.closeEmitter.event;
|
49
|
+
}
|
50
|
+
fireClose() {
|
51
|
+
this.closeEmitter.fire(undefined);
|
52
|
+
}
|
53
|
+
asError(error) {
|
54
|
+
if (error instanceof Error) {
|
55
|
+
return error;
|
56
|
+
}
|
57
|
+
return new Error(`Writer received error. Reason: ${typeof error.message === 'string' ? error.message : 'unknown'}`);
|
58
|
+
}
|
59
|
+
}export{AbstractMessageReader,AbstractMessageWriter};//# sourceMappingURL=transport.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"transport.js","sources":["../../../src/connections/jsonrpc2/transport.ts"],"sourcesContent":[null],"names":[],"mappings":"wCAcsB,qBAAqB,CAAA;AAC/B,EAAA,YAAA;AACA,EAAA,YAAA;AAER,EAAA,WAAA,GAAA;AACI,IAAA,IAAA,CAAA,YAAiB,GAAA,IAAG,OAAI,EAAA;AACxB,IAAA,IAAA,CAAA,YAAiB,GAAA,IAAG,OAAI,EAAA;;aAGV,GAAA;AACd,IAAA,IAAA,CAAA,YAAK,CAAA,WAAa,EAAA;AAClB,IAAA,IAAA,CAAA,YAAK,CAAA,WAAa,EAAA;;AAGtB,EAAA,IAAA,OAAkB,GAAA;AACd,IAAA,OAAA,IAAO,CAAI,YAAa,CAAA;;AAGlB,EAAA,SAAA,CAAA,KAAoB,EAAA;AAC1B,IAAA,IAAA,CAAA,YAAK,CAAA,IAAa,CAAA,IAAK,CAAA,OAAK,CAAA,KAAQ,CAAA,CAAA;;AAGxC,EAAA,IAAA,OAAkB,GAAA;AACd,IAAA,OAAA,IAAO,CAAI,YAAa,CAAA;;WAGT,GAAA;AACf,IAAA,IAAA,CAAA,YAAiB,CAAA,IAAC,UAAK,CAAA;;AAGnB,EAAA,OAAA,CAAA,KAAkB,EAAA;AACtB,IAAA,IAAA,KAAS,YAAA,KAAiB,EAAA;AACtB,MAAA,OAAA,KAAA;;AAEJ,IAAA,MAAA;;;;;AAKP;MASqB,qBAAqB,CAAA;AAC/B,EAAA,YAAA,GAAe,IAAA,OAAW,EAAA;AAC1B,EAAA,YAAA,GAAe,IAAA,OAAW,EAAA;aAEhB,GAAA;AACd,IAAA,IAAA,CAAA,YAAK,CAAA,WAAa,EAAA;AAClB,IAAA,IAAA,CAAA,YAAK,CAAA,WAAa,EAAA;;AAGtB,EAAA,IAAA,OAAkB,GAAA;AACd,IAAA,OAAA,IAAO,CAAI,YAAa,CAAA;;AAGlB,EAAA,SAAA,CAAA,KAAU,EAAU,OAAE,EAAiB,KAAgB,EAAA;AAC7D,IAAA,IAAA,CAAA,YAAiB,CAAA,IAAC,MAAM,QAAK,CAAA,KAAQ,CAAA,EAAA,OAAQ,EAAA,KAAc,CAAA,CAAA;;AAG/D,EAAA,IAAA,OAAkB,GAAA;AACd,IAAA,OAAA,IAAO,CAAI,YAAa,CAAA;;WAGT,GAAA;AACf,IAAA,IAAA,CAAA,YAAiB,CAAA,IAAC,UAAK,CAAA;;AAGnB,EAAA,OAAA,CAAA,KAAkB,EAAA;AACtB,IAAA,IAAA,KAAS,YAAA,KAAiB,EAAA;AACtB,MAAA,OAAA,KAAA;;WAEG,IAAA,sCACH,EAAA,YAA8C,CAAA,OAAQ,KAAA,QAAa,GAAA,KAAG,CAAA,OAAa,GAAA,SAAG,CAAA,CAAA,CAAA;;AAGjG"}
|
@@ -1,80 +1,75 @@
|
|
1
1
|
import {AbstractMessageReader,AbstractMessageWriter}from'../transport.js';class WebWorkerMessageReader extends AbstractMessageReader {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
2
|
+
worker;
|
3
|
+
pending = [];
|
4
|
+
callback = null;
|
5
|
+
constructor(worker) {
|
6
|
+
super();
|
7
|
+
this.worker = worker;
|
8
|
+
worker.addEventListener('message', e => {
|
9
|
+
try {
|
10
|
+
this.processMessage(e);
|
11
|
+
} catch (err) {
|
12
|
+
this.fireError(err);
|
13
|
+
}
|
14
|
+
});
|
15
|
+
worker.addEventListener('error', err => {
|
16
|
+
this.fireError(err);
|
17
|
+
if (err.cancelable) {
|
18
|
+
err.preventDefault();
|
19
|
+
} else {
|
20
|
+
terminateWorker(worker);
|
21
|
+
this.fireClose();
|
22
|
+
}
|
23
|
+
});
|
24
|
+
}
|
25
|
+
processMessage(e) {
|
26
|
+
const message = e.data;
|
27
|
+
if (this.callback) {
|
28
|
+
this.callback(message);
|
29
|
+
} else {
|
30
|
+
this.pending.push(message);
|
26
31
|
}
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
}
|
32
|
-
else {
|
33
|
-
this.pending.push(message);
|
34
|
-
}
|
32
|
+
}
|
33
|
+
listen(callback) {
|
34
|
+
if (this.callback) {
|
35
|
+
throw new Error('callback is already set');
|
35
36
|
}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
}
|
40
|
-
this.callback = callback;
|
41
|
-
while (this.pending.length !== 0) {
|
42
|
-
callback(this.pending.pop());
|
43
|
-
}
|
44
|
-
}
|
45
|
-
unsubscribe() {
|
46
|
-
super.unsubscribe();
|
47
|
-
this.callback = null;
|
48
|
-
terminateWorker(this.worker);
|
37
|
+
this.callback = callback;
|
38
|
+
while (this.pending.length !== 0) {
|
39
|
+
callback(this.pending.pop());
|
49
40
|
}
|
41
|
+
}
|
42
|
+
unsubscribe() {
|
43
|
+
super.unsubscribe();
|
44
|
+
this.callback = null;
|
45
|
+
terminateWorker(this.worker);
|
46
|
+
}
|
50
47
|
}
|
51
48
|
class WebWorkerMessageWriter extends AbstractMessageWriter {
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
this.fireError(error, message, ++this.errorCount);
|
64
|
-
}
|
65
|
-
}
|
66
|
-
unsubscribe() {
|
67
|
-
super.unsubscribe();
|
68
|
-
terminateWorker(this.worker);
|
49
|
+
worker;
|
50
|
+
errorCount = 0;
|
51
|
+
constructor(worker) {
|
52
|
+
super();
|
53
|
+
this.worker = worker;
|
54
|
+
}
|
55
|
+
write(message) {
|
56
|
+
try {
|
57
|
+
this.worker.postMessage(message);
|
58
|
+
} catch (error) {
|
59
|
+
this.fireError(error, message, ++this.errorCount);
|
69
60
|
}
|
61
|
+
}
|
62
|
+
unsubscribe() {
|
63
|
+
super.unsubscribe();
|
64
|
+
terminateWorker(this.worker);
|
65
|
+
}
|
70
66
|
}
|
71
67
|
function terminateWorker(worker) {
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
}
|
68
|
+
if (worker.terminate) {
|
69
|
+
worker.terminate(); // in window (worker parent) scope
|
70
|
+
} else if (worker.close) {
|
71
|
+
worker.close(); // in worker scope
|
72
|
+
}
|
78
73
|
}
|
79
74
|
/**
|
80
75
|
* Creates JSON-RPC2 message transports for the Web Worker message communication interface.
|
@@ -83,25 +78,22 @@ function terminateWorker(worker) {
|
|
83
78
|
* `self`) if the current execution context is in a Worker. Defaults to the global scope.
|
84
79
|
*/
|
85
80
|
function createWebWorkerMessageTransports(worker = globalWorkerScope()) {
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
81
|
+
const reader = new WebWorkerMessageReader(worker);
|
82
|
+
const writer = new WebWorkerMessageWriter(worker);
|
83
|
+
reader.onError(err => console.error(err));
|
84
|
+
writer.onError(err => console.error(err));
|
85
|
+
return {
|
86
|
+
reader,
|
87
|
+
writer
|
88
|
+
};
|
94
89
|
}
|
95
90
|
function globalWorkerScope() {
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
}
|
106
|
-
return worker;
|
107
|
-
}export{createWebWorkerMessageTransports};
|
91
|
+
var globalObject = typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : typeof global !== 'undefined' ? global : {};
|
92
|
+
const worker = globalObject;
|
93
|
+
// tslint:disable-next-line no-unbound-method
|
94
|
+
if (!worker.postMessage || 'document' in worker) {
|
95
|
+
// throw new Error('global scope is not a Worker')
|
96
|
+
console.warn('global scope is not a Worker');
|
97
|
+
}
|
98
|
+
return worker;
|
99
|
+
}export{createWebWorkerMessageTransports};//# sourceMappingURL=webWorker.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"webWorker.js","sources":["../../../../src/connections/jsonrpc2/transports/webWorker.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|