@adminide-stack/extension-api 3.1.4-alpha.94 → 5.0.1-alpha.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/lib/connections/jsonrpc2/connection.js +50 -49
- package/lib/connections/jsonrpc2/connection.js.map +1 -1
- package/lib/connections/jsonrpc2/connection.test.js +118 -120
- package/lib/connections/jsonrpc2/connection.test.js.map +1 -1
- package/lib/connections/jsonrpc2/events.js +3 -7
- package/lib/connections/jsonrpc2/events.js.map +1 -1
- package/lib/connections/jsonrpc2/index.js +5 -21
- package/lib/connections/jsonrpc2/index.js.map +1 -1
- package/lib/connections/jsonrpc2/linkedMap.js +3 -7
- package/lib/connections/jsonrpc2/linkedMap.js.map +1 -1
- package/lib/connections/jsonrpc2/linkedMap.test.js +15 -17
- package/lib/connections/jsonrpc2/linkedMap.test.js.map +1 -1
- package/lib/connections/jsonrpc2/messages.js +6 -13
- package/lib/connections/jsonrpc2/messages.js.map +1 -1
- package/lib/connections/jsonrpc2/test-helper.js +5 -10
- package/lib/connections/jsonrpc2/test-helper.js.map +1 -1
- package/lib/connections/jsonrpc2/trace.js +2 -6
- package/lib/connections/jsonrpc2/trace.js.map +1 -1
- package/lib/connections/jsonrpc2/transport.js +7 -12
- package/lib/connections/jsonrpc2/transport.js.map +1 -1
- package/lib/connections/jsonrpc2/transports/webWorker.js +4 -8
- package/lib/connections/jsonrpc2/transports/webWorker.js.map +1 -1
- package/lib/connections/proxy/index.js +1 -17
- package/lib/connections/proxy/index.js.map +1 -1
- package/lib/connections/proxy/proxy.js +6 -15
- package/lib/connections/proxy/proxy.js.map +1 -1
- package/lib/connections/proxy/proxy.test.js +13 -15
- package/lib/connections/proxy/proxy.test.js.map +1 -1
- package/lib/connections/remote-rpc/browser-remote-rpc.js +15 -19
- package/lib/connections/remote-rpc/browser-remote-rpc.js.map +1 -1
- package/lib/connections/remote-rpc/index.js +1 -17
- package/lib/connections/remote-rpc/index.js.map +1 -1
- package/lib/connections/remote-rpc/old-browser-remote-rpc.js +9 -13
- package/lib/connections/remote-rpc/old-browser-remote-rpc.js.map +1 -1
- package/lib/connections/remote-rpc/rxjs-websockets.js +8 -12
- package/lib/connections/remote-rpc/rxjs-websockets.js.map +1 -1
- package/lib/constants/action-types.js +4 -7
- package/lib/constants/action-types.js.map +1 -1
- package/lib/constants/index.js +2 -18
- package/lib/constants/index.js.map +1 -1
- package/lib/constants/types.js +1 -4
- package/lib/constants/types.js.map +1 -1
- package/lib/core/expr/evaluator.js +12 -19
- package/lib/core/expr/evaluator.js.map +1 -1
- package/lib/core/expr/evaluator.test.js +2 -4
- package/lib/core/expr/evaluator.test.js.map +1 -1
- package/lib/core/expr/index.js +3 -19
- package/lib/core/expr/index.js.map +1 -1
- package/lib/core/expr/lexer.js +8 -13
- package/lib/core/expr/lexer.js.map +1 -1
- package/lib/core/expr/parser.js +19 -24
- package/lib/core/expr/parser.js.map +1 -1
- package/lib/core/index.js +2 -18
- package/lib/core/index.js.map +1 -1
- package/lib/core/types/ext-host-types.js +10 -15
- package/lib/core/types/ext-host-types.js.map +1 -1
- package/lib/core/types/index.js +1 -17
- package/lib/core/types/index.js.map +1 -1
- package/lib/errors/errors.js +1 -5
- package/lib/errors/errors.js.map +1 -1
- package/lib/errors/index.js +1 -17
- package/lib/errors/index.js.map +1 -1
- package/lib/index.js +7 -23
- package/lib/index.js.map +1 -1
- package/lib/interfaces/command.js +1 -2
- package/lib/interfaces/configuration.js +1 -2
- package/lib/interfaces/connection.js +1 -2
- package/lib/interfaces/context.js +1 -2
- package/lib/interfaces/contributions/contribution-service.js +1 -2
- package/lib/interfaces/contributions/contribution.js +3 -6
- package/lib/interfaces/contributions/contribution.js.map +1 -1
- package/lib/interfaces/contributions/index.js +2 -18
- package/lib/interfaces/contributions/index.js.map +1 -1
- package/lib/interfaces/controller.js +1 -2
- package/lib/interfaces/errors.js +1 -2
- package/lib/interfaces/ext-services/contributon-registry.js +1 -2
- package/lib/interfaces/ext-services/ext-services.js +1 -2
- package/lib/interfaces/ext-services/extension-service.js +1 -2
- package/lib/interfaces/ext-services/index.js +8 -24
- package/lib/interfaces/ext-services/index.js.map +1 -1
- package/lib/interfaces/ext-services/model-service.js +1 -2
- package/lib/interfaces/ext-services/panel-view-registry.js +1 -2
- package/lib/interfaces/ext-services/settings-service.js +1 -2
- package/lib/interfaces/ext-services/view-service.js +1 -3
- package/lib/interfaces/ext-services/view-service.js.map +1 -1
- package/lib/interfaces/ext-services/viewer-service.js +1 -2
- package/lib/interfaces/ext-services/viewer-service.js.map +1 -1
- package/lib/interfaces/extension-manifest.js +1 -2
- package/lib/interfaces/extension.js +1 -2
- package/lib/interfaces/generated-models.js +105 -129
- package/lib/interfaces/generated-models.js.map +1 -1
- package/lib/interfaces/graphql.js +1 -4
- package/lib/interfaces/graphql.js.map +1 -1
- package/lib/interfaces/index.js +21 -37
- package/lib/interfaces/index.js.map +1 -1
- package/lib/interfaces/languages-types.js +1 -2
- package/lib/interfaces/model.js +1 -4
- package/lib/interfaces/model.js.map +1 -1
- package/lib/interfaces/plain-types.js +1 -2
- package/lib/interfaces/plain-types.js.map +1 -1
- package/lib/interfaces/plainTypes.js +1 -2
- package/lib/interfaces/platform-context.js +1 -2
- package/lib/interfaces/react-props/action-item.js +1 -2
- package/lib/interfaces/react-props/extension-controller.js +1 -2
- package/lib/interfaces/react-props/index.js +3 -19
- package/lib/interfaces/react-props/index.js.map +1 -1
- package/lib/interfaces/react-props/platform-context.js +1 -2
- package/lib/interfaces/registry-extension.js +1 -2
- package/lib/interfaces/settings.js +1 -2
- package/lib/interfaces/text-document.js +5 -10
- package/lib/interfaces/text-document.js.map +1 -1
- package/lib/interfaces/webview/index.js +3 -19
- package/lib/interfaces/webview/index.js.map +1 -1
- package/lib/interfaces/webview/webview-manager-service.js +1 -2
- package/lib/interfaces/webview/webview-port-mapping.js +1 -2
- package/lib/interfaces/webview/webview.js +2 -5
- package/lib/interfaces/webview/webview.js.map +1 -1
- package/lib/protocol/client.protocol.js +3 -6
- package/lib/protocol/client.protocol.js.map +1 -1
- package/lib/protocol/common.protocol.js +12 -17
- package/lib/protocol/common.protocol.js.map +1 -1
- package/lib/protocol/editor-missing-types.js +2 -5
- package/lib/protocol/editor-missing-types.js.map +1 -1
- package/lib/protocol/index.js +6 -22
- package/lib/protocol/index.js.map +1 -1
- package/lib/protocol/proxy-identifier.js +10 -17
- package/lib/protocol/proxy-identifier.js.map +1 -1
- package/lib/protocol/rpc-logger.js +1 -5
- package/lib/protocol/rpc-logger.js.map +1 -1
- package/lib/protocol/rpc-protocol.d.ts +3 -3
- package/lib/protocol/rpc-protocol.js +57 -64
- package/lib/protocol/rpc-protocol.js.map +1 -1
- package/lib/protocol/rpc-protocol.test.js +13 -15
- package/lib/protocol/rpc-protocol.test.js.map +1 -1
- package/lib/protocol/server.protocol.js +13 -16
- package/lib/protocol/server.protocol.js.map +1 -1
- package/lib/protocol/shared/editor.js +6 -11
- package/lib/protocol/shared/editor.js.map +1 -1
- package/lib/protocol/shared/tasks.js +1 -2
- package/lib/protocol/shared/tasks.js.map +1 -1
- package/lib/protocol/temporary-types.js +2 -5
- package/lib/protocol/temporary-types.js.map +1 -1
- package/lib/protocol/utils/index.js +1 -17
- package/lib/protocol/utils/index.js.map +1 -1
- package/lib/protocol/utils/lazy-promise.js +3 -7
- package/lib/protocol/utils/lazy-promise.js.map +1 -1
- package/lib/utils/errors.js +2 -7
- package/lib/utils/errors.js.map +1 -1
- package/lib/utils/extensions.js +3 -7
- package/lib/utils/extensions.js.map +1 -1
- package/lib/utils/helper.test.js +1 -5
- package/lib/utils/helper.test.js.map +1 -1
- package/lib/utils/index.js +7 -24
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/paths-util.js +17 -23
- package/lib/utils/paths-util.js.map +1 -1
- package/lib/utils/rxjs/combineLatestOrDefault.js +12 -16
- package/lib/utils/rxjs/combineLatestOrDefault.js.map +1 -1
- package/lib/utils/rxjs/combineLatestOrDefault.test.js +13 -15
- package/lib/utils/rxjs/combineLatestOrDefault.test.js.map +1 -1
- package/lib/utils/rxjs/index.js +1 -17
- package/lib/utils/rxjs/index.js.map +1 -1
- package/lib/utils/util.js +7 -15
- package/lib/utils/util.js.map +1 -1
- package/lib/worker-lib/MessageTypes.js +5 -8
- package/lib/worker-lib/MessageTypes.js.map +1 -1
- package/lib/worker-lib/index.js +2 -18
- package/lib/worker-lib/index.js.map +1 -1
- package/lib/worker-lib/webWorkerLink.js +10 -16
- package/lib/worker-lib/webWorkerLink.js.map +1 -1
- package/lib/worker-lib/workerUtils.js +16 -21
- package/lib/worker-lib/workerUtils.js.map +1 -1
- package/package.json +4 -4
@@ -1,50 +1,48 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
const test_helper_1 = require("./test-helper");
|
11
|
-
const messages_1 = require("./messages");
|
1
|
+
import 'babel-polyfill';
|
2
|
+
import AbortController from 'abort-controller';
|
3
|
+
import assert from 'assert';
|
4
|
+
import { Observable, of } from 'rxjs';
|
5
|
+
import { bufferCount, delay } from 'rxjs/operators';
|
6
|
+
import { createBarrier } from '../../utils';
|
7
|
+
import { createConnection } from './connection';
|
8
|
+
import { createMessagePipe, createMessageTransports } from './test-helper';
|
9
|
+
import { ErrorCodes } from './messages';
|
12
10
|
// import 'jest';
|
13
11
|
describe('Connection', () => {
|
14
12
|
// Polyfill
|
15
13
|
;
|
16
|
-
global.AbortController =
|
14
|
+
global.AbortController = AbortController;
|
17
15
|
it('handle single request', async () => {
|
18
16
|
const method = 'test/handleSingleRequest';
|
19
|
-
const [serverTransports, clientTransports] =
|
20
|
-
const server =
|
17
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
18
|
+
const server = createConnection(serverTransports);
|
21
19
|
server.onRequest(method, (p1, _signal) => {
|
22
20
|
assert.deepStrictEqual(p1, ['foo']);
|
23
21
|
return p1;
|
24
22
|
});
|
25
23
|
server.listen();
|
26
|
-
const client =
|
24
|
+
const client = createConnection(clientTransports);
|
27
25
|
client.listen();
|
28
26
|
assert.deepStrictEqual(await client.sendRequest(method, ['foo']), ['foo']);
|
29
27
|
});
|
30
28
|
it('handle single request with async result', async () => {
|
31
29
|
const method = 'test/handleSingleRequest';
|
32
|
-
const [serverTransports, clientTransports] =
|
33
|
-
const server =
|
30
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
31
|
+
const server = createConnection(serverTransports);
|
34
32
|
server.onRequest(method, (p1, _signal) => {
|
35
33
|
assert.deepStrictEqual(p1, ['foo']);
|
36
34
|
return Promise.resolve(p1);
|
37
35
|
});
|
38
36
|
server.listen();
|
39
|
-
const client =
|
37
|
+
const client = createConnection(clientTransports);
|
40
38
|
client.listen();
|
41
39
|
assert.deepStrictEqual(await client.sendRequest(method, ['foo']), ['foo']);
|
42
40
|
});
|
43
41
|
it('abort undispatched request', async () => {
|
44
|
-
const [serverTransports, clientTransports] =
|
45
|
-
const b1 =
|
46
|
-
const b2 =
|
47
|
-
const server =
|
42
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
43
|
+
const b1 = createBarrier();
|
44
|
+
const b2 = createBarrier();
|
45
|
+
const server = createConnection(serverTransports);
|
48
46
|
server.onRequest('block', async () => {
|
49
47
|
b2.done();
|
50
48
|
await b1.wait;
|
@@ -53,19 +51,19 @@ describe('Connection', () => {
|
|
53
51
|
throw new Error('handler should not be called');
|
54
52
|
});
|
55
53
|
server.listen();
|
56
|
-
const client =
|
54
|
+
const client = createConnection(clientTransports);
|
57
55
|
client.listen();
|
58
56
|
client.sendRequest('block').catch(null);
|
59
57
|
await b2.wait;
|
60
|
-
const abortController = new
|
58
|
+
const abortController = new AbortController();
|
61
59
|
const result = client.sendRequest('undispatched', ['foo'], abortController.signal);
|
62
60
|
abortController.abort();
|
63
61
|
b1.done();
|
64
62
|
await assert.rejects(result, (err) => err.name === 'AbortError');
|
65
63
|
});
|
66
64
|
it('abort request currently being handled', async () => {
|
67
|
-
const [serverTransports, clientTransports] =
|
68
|
-
const server =
|
65
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
66
|
+
const server = createConnection(serverTransports);
|
69
67
|
server.onRequest('m', (_params, signal) => {
|
70
68
|
if (!signal) {
|
71
69
|
throw new Error('!signal');
|
@@ -76,57 +74,57 @@ describe('Connection', () => {
|
|
76
74
|
});
|
77
75
|
server.onRequest('ping', () => 'pong');
|
78
76
|
server.listen();
|
79
|
-
const client =
|
77
|
+
const client = createConnection(clientTransports);
|
80
78
|
client.listen();
|
81
|
-
const abortController = new
|
79
|
+
const abortController = new AbortController();
|
82
80
|
const result = client.sendRequest('m', undefined, abortController.signal);
|
83
81
|
assert.strictEqual(await client.sendRequest('ping'), 'pong'); // waits until the 'm' message starts to be handled
|
84
82
|
abortController.abort();
|
85
83
|
await assert.rejects(result, (err) => err.name === 'AbortError');
|
86
84
|
});
|
87
85
|
it('send request with single observable emission', async () => {
|
88
|
-
const [serverTransports, clientTransports] =
|
89
|
-
const server =
|
90
|
-
server.onRequest('m', (params) =>
|
86
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
87
|
+
const server = createConnection(serverTransports);
|
88
|
+
server.onRequest('m', (params) => of(params[0] + 1).pipe(delay(0)));
|
91
89
|
server.listen();
|
92
|
-
const client =
|
90
|
+
const client = createConnection(clientTransports);
|
93
91
|
client.listen();
|
94
92
|
assert.strictEqual(await client.sendRequest('m', [1]), 2);
|
95
93
|
});
|
96
94
|
it('observe request with single observable emission', async () => {
|
97
|
-
const [serverTransports, clientTransports] =
|
98
|
-
const server =
|
99
|
-
server.onRequest('m', (params) =>
|
95
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
96
|
+
const server = createConnection(serverTransports);
|
97
|
+
server.onRequest('m', (params) => of(params[0] + 1));
|
100
98
|
server.listen();
|
101
|
-
const client =
|
99
|
+
const client = createConnection(clientTransports);
|
102
100
|
client.listen();
|
103
101
|
const result = client.observeRequest('m', [1]);
|
104
102
|
assert.deepStrictEqual(await result.toPromise(), 2);
|
105
103
|
});
|
106
104
|
it('observe request with multiple observable emissions', async () => {
|
107
|
-
const [serverTransports, clientTransports] =
|
108
|
-
const server =
|
109
|
-
server.onRequest('m', (params) => new
|
105
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
106
|
+
const server = createConnection(serverTransports);
|
107
|
+
server.onRequest('m', (params) => new Observable(observer => {
|
110
108
|
for (const v of params) {
|
111
109
|
observer.next(v + 1);
|
112
110
|
}
|
113
111
|
observer.complete();
|
114
112
|
}));
|
115
113
|
server.listen();
|
116
|
-
const client =
|
114
|
+
const client = createConnection(clientTransports);
|
117
115
|
client.listen();
|
118
116
|
assert.deepStrictEqual(await client
|
119
117
|
.observeRequest('m', [1, 2, 3, 4])
|
120
|
-
.pipe(
|
118
|
+
.pipe(bufferCount(4))
|
121
119
|
.toPromise(), [2, 3, 4, 5]);
|
122
120
|
});
|
123
121
|
it('handle multiple requests', async () => {
|
124
122
|
const method = 'test/handleSingleRequest';
|
125
|
-
const [serverTransports, clientTransports] =
|
126
|
-
const server =
|
123
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
124
|
+
const server = createConnection(serverTransports);
|
127
125
|
server.onRequest(method, (p1, _signal) => p1);
|
128
126
|
server.listen();
|
129
|
-
const client =
|
127
|
+
const client = createConnection(clientTransports);
|
130
128
|
client.listen();
|
131
129
|
const promises = [];
|
132
130
|
promises.push(client.sendRequest(method, ['foo']));
|
@@ -136,124 +134,124 @@ describe('Connection', () => {
|
|
136
134
|
});
|
137
135
|
it('unhandled request', async () => {
|
138
136
|
const method = 'test/handleSingleRequest';
|
139
|
-
const [serverTransports, clientTransports] =
|
140
|
-
const server =
|
137
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
138
|
+
const server = createConnection(serverTransports);
|
141
139
|
server.listen();
|
142
|
-
const client =
|
140
|
+
const client = createConnection(clientTransports);
|
143
141
|
client.listen();
|
144
|
-
await assert.rejects(() => client.sendRequest(method, ['foo']), (error) => error.code ===
|
142
|
+
await assert.rejects(() => client.sendRequest(method, ['foo']), (error) => error.code === ErrorCodes.MethodNotFound);
|
145
143
|
});
|
146
144
|
it('handler throws an Error', async () => {
|
147
145
|
const method = 'test/handleSingleRequest';
|
148
|
-
const [serverTransports, clientTransports] =
|
149
|
-
const server =
|
146
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
147
|
+
const server = createConnection(serverTransports);
|
150
148
|
server.onRequest(method, () => {
|
151
149
|
throw new Error('test');
|
152
150
|
});
|
153
151
|
server.listen();
|
154
|
-
const client =
|
152
|
+
const client = createConnection(clientTransports);
|
155
153
|
client.listen();
|
156
|
-
await assert.rejects(() => client.sendRequest(method, ['foo']), (error) => error.code ===
|
154
|
+
await assert.rejects(() => client.sendRequest(method, ['foo']), (error) => error.code === ErrorCodes.InternalError &&
|
157
155
|
error.message === 'test' &&
|
158
156
|
error.data &&
|
159
157
|
typeof error.data.stack === 'string');
|
160
158
|
});
|
161
159
|
it('handler returns a rejected Promise with an Error', async () => {
|
162
160
|
const method = 'test/handleSingleRequest';
|
163
|
-
const [serverTransports, clientTransports] =
|
164
|
-
const server =
|
161
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
162
|
+
const server = createConnection(serverTransports);
|
165
163
|
server.onRequest(method, () => Promise.reject(new Error('test')));
|
166
164
|
server.listen();
|
167
|
-
const client =
|
165
|
+
const client = createConnection(clientTransports);
|
168
166
|
client.listen();
|
169
|
-
await assert.rejects(() => client.sendRequest(method, ['foo']), (error) => error.code ===
|
167
|
+
await assert.rejects(() => client.sendRequest(method, ['foo']), (error) => error.code === ErrorCodes.InternalError &&
|
170
168
|
error.message === 'test' &&
|
171
169
|
error.data &&
|
172
170
|
typeof error.data.stack === 'string');
|
173
171
|
});
|
174
172
|
it('receives undefined request params as null', async () => {
|
175
173
|
const method = 'test/handleSingleRequest';
|
176
|
-
const [serverTransports, clientTransports] =
|
177
|
-
const server =
|
174
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
175
|
+
const server = createConnection(serverTransports);
|
178
176
|
server.onRequest(method, params => {
|
179
177
|
assert.strictEqual(params, null);
|
180
178
|
return '';
|
181
179
|
});
|
182
180
|
server.listen();
|
183
|
-
const client =
|
181
|
+
const client = createConnection(clientTransports);
|
184
182
|
client.listen();
|
185
183
|
await client.sendRequest(method);
|
186
184
|
});
|
187
185
|
it('receives undefined notification params as null', async () => {
|
188
186
|
const method = 'testNotification';
|
189
|
-
const [serverTransports, clientTransports] =
|
190
|
-
const server =
|
187
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
188
|
+
const server = createConnection(serverTransports);
|
191
189
|
server.onNotification(method, params => {
|
192
190
|
assert.strictEqual(params, null);
|
193
191
|
return '';
|
194
192
|
});
|
195
193
|
server.listen();
|
196
|
-
const client =
|
194
|
+
const client = createConnection(clientTransports);
|
197
195
|
client.listen();
|
198
196
|
client.sendNotification(method);
|
199
197
|
});
|
200
198
|
it('receives null as null', async () => {
|
201
199
|
const method = 'test/handleSingleRequest';
|
202
|
-
const [serverTransports, clientTransports] =
|
203
|
-
const server =
|
200
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
201
|
+
const server = createConnection(serverTransports);
|
204
202
|
server.onRequest(method, params => {
|
205
203
|
assert.deepStrictEqual(params, [null]);
|
206
204
|
return null;
|
207
205
|
});
|
208
206
|
server.listen();
|
209
|
-
const client =
|
207
|
+
const client = createConnection(clientTransports);
|
210
208
|
client.listen();
|
211
209
|
assert.strictEqual(await client.sendRequest(method, [null]), null);
|
212
210
|
});
|
213
211
|
it('receives 0 as 0', async () => {
|
214
212
|
const method = 'test/handleSingleRequest';
|
215
|
-
const [serverTransports, clientTransports] =
|
216
|
-
const server =
|
213
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
214
|
+
const server = createConnection(serverTransports);
|
217
215
|
server.onRequest(method, params => {
|
218
216
|
assert.deepStrictEqual(params, [0]);
|
219
217
|
return 0;
|
220
218
|
});
|
221
219
|
server.listen();
|
222
|
-
const client =
|
220
|
+
const client = createConnection(clientTransports);
|
223
221
|
client.listen();
|
224
222
|
assert.strictEqual(await client.sendRequest(method, [0]), 0);
|
225
223
|
});
|
226
224
|
const testNotification = 'testNotification';
|
227
225
|
it('sends and receives notification', done => {
|
228
|
-
const [serverTransports, clientTransports] =
|
229
|
-
const server =
|
226
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
227
|
+
const server = createConnection(serverTransports);
|
230
228
|
server.onNotification(testNotification, params => {
|
231
229
|
assert.deepStrictEqual(params, [{ value: true }]);
|
232
230
|
done();
|
233
231
|
});
|
234
232
|
server.listen();
|
235
|
-
const client =
|
233
|
+
const client = createConnection(clientTransports);
|
236
234
|
client.listen();
|
237
235
|
client.sendNotification(testNotification, [{ value: true }]);
|
238
236
|
});
|
239
237
|
it('unhandled notification event', done => {
|
240
|
-
const [serverTransports, clientTransports] =
|
241
|
-
const server =
|
238
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
239
|
+
const server = createConnection(serverTransports);
|
242
240
|
server.onUnhandledNotification(message => {
|
243
241
|
assert.strictEqual(message.method, testNotification);
|
244
242
|
assert.deepStrictEqual(message.params, [{ value: true }]);
|
245
243
|
done();
|
246
244
|
});
|
247
245
|
server.listen();
|
248
|
-
const client =
|
246
|
+
const client = createConnection(clientTransports);
|
249
247
|
client.listen();
|
250
248
|
client.sendNotification(testNotification, [{ value: true }]);
|
251
249
|
});
|
252
250
|
it('unsubscribes client connection', async () => {
|
253
251
|
const method = 'test/handleSingleRequest';
|
254
|
-
const [serverTransports, clientTransports] =
|
255
|
-
const client =
|
256
|
-
const server =
|
252
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
253
|
+
const client = createConnection(clientTransports);
|
254
|
+
const server = createConnection(serverTransports);
|
257
255
|
server.onRequest(method, _param => {
|
258
256
|
client.unsubscribe();
|
259
257
|
return '';
|
@@ -263,18 +261,18 @@ describe('Connection', () => {
|
|
263
261
|
await assert.rejects(() => client.sendRequest(method, ['']));
|
264
262
|
});
|
265
263
|
it('unsubscribed connection throws', () => {
|
266
|
-
const client =
|
264
|
+
const client = createConnection(createMessagePipe());
|
267
265
|
client.listen();
|
268
266
|
client.unsubscribe();
|
269
267
|
assert.throws(() => client.sendNotification(testNotification));
|
270
268
|
});
|
271
269
|
it('two listen throw', () => {
|
272
|
-
const client =
|
270
|
+
const client = createConnection(createMessagePipe());
|
273
271
|
client.listen();
|
274
272
|
assert.throws(() => client.listen());
|
275
273
|
});
|
276
274
|
it('notify on connection unsubscribe', done => {
|
277
|
-
const client =
|
275
|
+
const client = createConnection(createMessagePipe());
|
278
276
|
client.listen();
|
279
277
|
client.onUnsubscribe(() => {
|
280
278
|
done();
|
@@ -283,48 +281,48 @@ describe('Connection', () => {
|
|
283
281
|
});
|
284
282
|
it('params in notifications', done => {
|
285
283
|
const method = 'test';
|
286
|
-
const [serverTransports, clientTransports] =
|
287
|
-
const server =
|
284
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
285
|
+
const server = createConnection(serverTransports);
|
288
286
|
server.onNotification(method, params => {
|
289
287
|
assert.deepStrictEqual(params, [10, 'vscode']);
|
290
288
|
done();
|
291
289
|
});
|
292
290
|
server.listen();
|
293
|
-
const client =
|
291
|
+
const client = createConnection(clientTransports);
|
294
292
|
client.listen();
|
295
293
|
client.sendNotification(method, [10, 'vscode']);
|
296
294
|
});
|
297
295
|
it('params in request/response', async () => {
|
298
296
|
const method = 'add';
|
299
|
-
const [serverTransports, clientTransports] =
|
300
|
-
const server =
|
297
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
298
|
+
const server = createConnection(serverTransports);
|
301
299
|
server.onRequest(method, (params) => {
|
302
300
|
assert.deepStrictEqual(params, [10, 20, 30]);
|
303
301
|
return params.reduce((sum, n) => sum + n, 0);
|
304
302
|
});
|
305
303
|
server.listen();
|
306
|
-
const client =
|
304
|
+
const client = createConnection(clientTransports);
|
307
305
|
client.listen();
|
308
306
|
assert.strictEqual(await client.sendRequest(method, [10, 20, 30]), 60);
|
309
307
|
});
|
310
308
|
it('params in request/response with signal', async () => {
|
311
309
|
const method = 'add';
|
312
|
-
const [serverTransports, clientTransports] =
|
313
|
-
const server =
|
310
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
311
|
+
const server = createConnection(serverTransports);
|
314
312
|
server.onRequest(method, (params, _signal) => {
|
315
313
|
assert.deepStrictEqual(params, [10, 20, 30]);
|
316
314
|
return params.reduce((sum, n) => sum + n, 0);
|
317
315
|
});
|
318
316
|
server.listen();
|
319
|
-
const client =
|
320
|
-
const signal = new
|
317
|
+
const client = createConnection(clientTransports);
|
318
|
+
const signal = new AbortController().signal;
|
321
319
|
client.listen();
|
322
320
|
assert.strictEqual(await client.sendRequest(method, [10, 20, 30], signal), 60);
|
323
321
|
});
|
324
322
|
it('1 param as array in request', async () => {
|
325
323
|
const type = 'add';
|
326
|
-
const [serverTransports, clientTransports] =
|
327
|
-
const server =
|
324
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
325
|
+
const server = createConnection(serverTransports);
|
328
326
|
server.onRequest(type, p1 => {
|
329
327
|
assert(Array.isArray(p1));
|
330
328
|
assert.strictEqual(p1[0], 10);
|
@@ -333,109 +331,109 @@ describe('Connection', () => {
|
|
333
331
|
return 60;
|
334
332
|
});
|
335
333
|
server.listen();
|
336
|
-
const client =
|
337
|
-
const signal = new
|
334
|
+
const client = createConnection(clientTransports);
|
335
|
+
const signal = new AbortController().signal;
|
338
336
|
client.listen();
|
339
337
|
assert.strictEqual(await client.sendRequest(type, [10, 20, 30], signal), 60);
|
340
338
|
});
|
341
339
|
it('1 param as array in notification', done => {
|
342
340
|
const type = 'add';
|
343
|
-
const [serverTransports, clientTransports] =
|
344
|
-
const server =
|
341
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
342
|
+
const server = createConnection(serverTransports);
|
345
343
|
server.onNotification(type, params => {
|
346
344
|
assert.deepStrictEqual(params, [10, 20, 30]);
|
347
345
|
done();
|
348
346
|
});
|
349
347
|
server.listen();
|
350
|
-
const client =
|
348
|
+
const client = createConnection(clientTransports);
|
351
349
|
client.listen();
|
352
350
|
client.sendNotification(type, [10, 20, 30]);
|
353
351
|
});
|
354
352
|
it('untyped request/response', async () => {
|
355
|
-
const [serverTransports, clientTransports] =
|
356
|
-
const server =
|
353
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
354
|
+
const server = createConnection(serverTransports);
|
357
355
|
server.onRequest('test', (params, _signal) => {
|
358
356
|
assert.deepStrictEqual(params, [10, 20, 30]);
|
359
357
|
return params.reduce((sum, n) => sum + n, 0);
|
360
358
|
});
|
361
359
|
server.listen();
|
362
|
-
const client =
|
363
|
-
const signal = new
|
360
|
+
const client = createConnection(clientTransports);
|
361
|
+
const signal = new AbortController().signal;
|
364
362
|
client.listen();
|
365
363
|
assert.strictEqual(await client.sendRequest('test', [10, 20, 30], signal), 60);
|
366
364
|
});
|
367
365
|
it('untyped notification', done => {
|
368
|
-
const [serverTransports, clientTransports] =
|
369
|
-
const server =
|
366
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
367
|
+
const server = createConnection(serverTransports);
|
370
368
|
server.onNotification('test', (params) => {
|
371
369
|
assert.deepStrictEqual(params, [10, 20, 30]);
|
372
370
|
done();
|
373
371
|
});
|
374
372
|
server.listen();
|
375
|
-
const client =
|
373
|
+
const client = createConnection(clientTransports);
|
376
374
|
client.listen();
|
377
375
|
client.sendNotification('test', [10, 20, 30]);
|
378
376
|
});
|
379
377
|
it('star request handler', async () => {
|
380
|
-
const [serverTransports, clientTransports] =
|
381
|
-
const server =
|
378
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
379
|
+
const server = createConnection(serverTransports);
|
382
380
|
server.onRequest((method, params, _signal) => {
|
383
381
|
assert.strictEqual(method, 'test');
|
384
382
|
assert.deepStrictEqual(params, [10, 20, 30]);
|
385
383
|
return params.reduce((sum, n) => sum + n, 0);
|
386
384
|
});
|
387
385
|
server.listen();
|
388
|
-
const client =
|
389
|
-
const signal = new
|
386
|
+
const client = createConnection(clientTransports);
|
387
|
+
const signal = new AbortController().signal;
|
390
388
|
client.listen();
|
391
389
|
assert.strictEqual(await client.sendRequest('test', [10, 20, 30], signal), 60);
|
392
390
|
});
|
393
391
|
it('star notification handler', done => {
|
394
|
-
const [serverTransports, clientTransports] =
|
395
|
-
const server =
|
392
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
393
|
+
const server = createConnection(serverTransports);
|
396
394
|
server.onNotification((method, params) => {
|
397
395
|
assert.strictEqual(method, 'test');
|
398
396
|
assert.deepStrictEqual(params, [10, 20, 30]);
|
399
397
|
done();
|
400
398
|
});
|
401
399
|
server.listen();
|
402
|
-
const client =
|
400
|
+
const client = createConnection(clientTransports);
|
403
401
|
client.listen();
|
404
402
|
client.sendNotification('test', [10, 20, 30]);
|
405
403
|
});
|
406
404
|
it('abort signal is undefined', async () => {
|
407
405
|
const type = 'add';
|
408
|
-
const [serverTransports, clientTransports] =
|
409
|
-
const server =
|
406
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
407
|
+
const server = createConnection(serverTransports);
|
410
408
|
server.onRequest(type, (params, _signal) => {
|
411
409
|
assert.deepStrictEqual(params, [10, 20, 30]);
|
412
410
|
return params.reduce((sum, n) => sum + n, 0);
|
413
411
|
});
|
414
412
|
server.listen();
|
415
|
-
const client =
|
413
|
+
const client = createConnection(clientTransports);
|
416
414
|
client.listen();
|
417
415
|
assert.strictEqual(await client.sendRequest(type, [10, 20, 30], undefined), 60);
|
418
416
|
});
|
419
417
|
it('null params in request', async () => {
|
420
418
|
const type = 'add';
|
421
|
-
const [serverTransports, clientTransports] =
|
422
|
-
const server =
|
419
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
420
|
+
const server = createConnection(serverTransports);
|
423
421
|
server.onRequest(type, _signal => 123);
|
424
422
|
server.listen();
|
425
|
-
const client =
|
423
|
+
const client = createConnection(clientTransports);
|
426
424
|
client.listen();
|
427
425
|
client.sendRequest(type, null).then((result) => assert.strictEqual(result, 123));
|
428
426
|
});
|
429
427
|
it('null params in notifications', done => {
|
430
428
|
const type = 'test';
|
431
|
-
const [serverTransports, clientTransports] =
|
432
|
-
const server =
|
429
|
+
const [serverTransports, clientTransports] = createMessageTransports();
|
430
|
+
const server = createConnection(serverTransports);
|
433
431
|
server.onNotification(type, params => {
|
434
432
|
assert.strictEqual(params, null);
|
435
433
|
done();
|
436
434
|
});
|
437
435
|
server.listen();
|
438
|
-
const client =
|
436
|
+
const client = createConnection(clientTransports);
|
439
437
|
client.listen();
|
440
438
|
client.sendNotification(type, null);
|
441
439
|
});
|