@adminide-stack/extension-api 1.1.1-alpha.30 → 1.1.1-alpha.304

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.
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ require("reflect-metadata");
13
+ const abort_controller_1 = require("abort-controller");
14
+ const mock_socket_1 = require("mock-socket");
15
+ const connection_1 = require("../jsonrpc2/connection");
16
+ const assert = require("assert");
17
+ const browser_remote_rpc_1 = require("./browser-remote-rpc");
18
+ const utils_1 = require("../../utils");
19
+ const extension_module_server_1 = require("@workbench-stack/extension-module-server");
20
+ const rpc_protocol_1 = require("../../protocol/rpc-protocol");
21
+ const event_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/event");
22
+ const rpc_logger_1 = require("../../protocol/rpc-logger");
23
+ const test_helper_1 = require("../jsonrpc2/test-helper");
24
+ const proxy_1 = require("../proxy/proxy");
25
+ // import 'jest';
26
+ const protocol_1 = require("../../protocol");
27
+ const buffer_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/buffer");
28
+ const consoleLogger = {
29
+ error(message) {
30
+ console.error(message);
31
+ },
32
+ warn(message) {
33
+ console.warn(message);
34
+ },
35
+ info(message) {
36
+ // tslint:disable-next-line:no-console
37
+ console.info(message);
38
+ },
39
+ log(message) {
40
+ // tslint:disable-next-line:no-console
41
+ console.log(message);
42
+ },
43
+ };
44
+ class MessagePassingProtocol {
45
+ constructor(hostId = 0 /* ServerExtHost */) {
46
+ this._onNativeMessage = new event_1.Emitter();
47
+ this.onMessage = this._onNativeMessage.event;
48
+ this._localHostId = hostId;
49
+ }
50
+ setPair(other) {
51
+ this._pair = other;
52
+ }
53
+ send(buffer, hostIdentifier) {
54
+ console.log('--send From Ext', hostIdentifier);
55
+ const headerBuf = buffer_1.VSBuffer.alloc(2);
56
+ // add destination host id
57
+ headerBuf.writeUInt8(hostIdentifier, 0);
58
+ // add sender host id
59
+ headerBuf.writeUInt8(this._localHostId, 1);
60
+ const cocatBuf = buffer_1.VSBuffer.concat([headerBuf, buffer]);
61
+ process.nextTick(() => {
62
+ this._pair._onNativeMessage.fire(cocatBuf);
63
+ });
64
+ }
65
+ }
66
+ class MultiMessagePassingProtocol {
67
+ constructor(hostId = 1 /* ServerMainThread */) {
68
+ this._wsProtocol = new extension_module_server_1.WsProtocol();
69
+ this._onNativeMessage = new event_1.Emitter();
70
+ this._onMessage = new event_1.EventMultiplexer();
71
+ this.onMessage = this._onMessage.event;
72
+ this._localHostId = hostId;
73
+ this._onMessage.add(this._onNativeMessage.event);
74
+ this._onMessage.add(this._wsProtocol.onMessage);
75
+ }
76
+ connect(socket) {
77
+ this._wsProtocol.connect(socket);
78
+ }
79
+ setPair(other) {
80
+ this._pair = other;
81
+ }
82
+ send(buffer, hostIdentifier) {
83
+ const transportType = this.getRequestTypeRouting(hostIdentifier);
84
+ const headerBuf = buffer_1.VSBuffer.alloc(2);
85
+ // add destination host id
86
+ headerBuf.writeUInt8(hostIdentifier, 0);
87
+ // add sender host id
88
+ headerBuf.writeUInt8(this._localHostId, 1);
89
+ const cocatBuf = buffer_1.VSBuffer.concat([headerBuf, buffer]);
90
+ this._send(cocatBuf, transportType);
91
+ }
92
+ _send(buffer, transportType) {
93
+ console.log('---_send fromMulitp transportType websocket', transportType === 1 /* WebSocket */);
94
+ if (transportType === 1 /* WebSocket */) {
95
+ this.webSend(buffer);
96
+ }
97
+ else {
98
+ this.nativeSend(buffer);
99
+ }
100
+ }
101
+ forward(buffer, hostIdentifier) {
102
+ console.log('---forward the request to hostId', hostIdentifier);
103
+ const transportType = this.getRequestTypeRouting(hostIdentifier);
104
+ if (transportType === 1 /* WebSocket */) {
105
+ this._send(buffer, 1 /* WebSocket */);
106
+ }
107
+ else {
108
+ this._send(buffer, 0 /* Socket */);
109
+ }
110
+ }
111
+ webSend(buffer) {
112
+ return this._wsProtocol.send(buffer);
113
+ }
114
+ nativeSend(buffer) {
115
+ process.nextTick(() => {
116
+ this._pair._onNativeMessage.fire(buffer);
117
+ });
118
+ }
119
+ getRequestTypeRouting(hostIdentifier) {
120
+ if (hostIdentifier === 0 /* ServerExtHost */) {
121
+ return 0 /* Socket */;
122
+ }
123
+ else if (hostIdentifier === 2 /* BrowserExtHost */) {
124
+ return 1 /* WebSocket */;
125
+ }
126
+ else {
127
+ return 0 /* Socket */;
128
+ }
129
+ }
130
+ }
131
+ describe('Websocket RPC', () => {
132
+ let fakeURL;
133
+ let mockServer;
134
+ let socket1;
135
+ let delegate;
136
+ let bProxyFromA;
137
+ let bProdyFromC;
138
+ let aProxyFromB;
139
+ let aProxyFromC;
140
+ let cProxyFromA;
141
+ class AClass {
142
+ $m(a1, a2) {
143
+ return Promise.resolve(delegate.call(null, a1, a2));
144
+ }
145
+ }
146
+ class BClass {
147
+ $n(a1, a2) {
148
+ return Promise.resolve(delegate.call(null, a1, a2));
149
+ }
150
+ }
151
+ class CClass {
152
+ $o(a1, a2) {
153
+ return Promise.resolve(delegate.call(null, a1, a2));
154
+ }
155
+ }
156
+ beforeEach((done) => {
157
+ fakeURL = 'ws://localhost:8080';
158
+ mockServer = new mock_socket_1.Server(fakeURL);
159
+ let b_protocol = new browser_remote_rpc_1.BrowserRemoteRPC();
160
+ b_protocol.connect(fakeURL, () => {
161
+ socket1 = new mock_socket_1.WebSocket(fakeURL);
162
+ socket1.binaryType = 'arraybuffer';
163
+ return socket1;
164
+ });
165
+ mockServer.on('connection', socket => {
166
+ console.log('---SOCKET MOCK SErver', socket);
167
+ let a_protocol = new MultiMessagePassingProtocol();
168
+ a_protocol.connect(socket);
169
+ let c_protocol = new MessagePassingProtocol();
170
+ c_protocol.setPair(a_protocol);
171
+ a_protocol.setPair(c_protocol);
172
+ let A = new rpc_protocol_1.RPCProtocol(a_protocol, 1 /* ServerMainThread */, new rpc_logger_1.RPCLogger(), null);
173
+ let B = new rpc_protocol_1.RPCProtocol(b_protocol, 2 /* BrowserExtHost */, new rpc_logger_1.RPCLogger(), null);
174
+ let C = new rpc_protocol_1.RPCProtocol(c_protocol, 0 /* ServerExtHost */, new rpc_logger_1.RPCLogger(), null);
175
+ const bIdentifier = new protocol_1.ProxyIdentifier(false, 'bb', 2 /* BrowserExtHost */);
176
+ const bInstance = new BClass();
177
+ const aIdentifier = new protocol_1.ProxyIdentifier(false, 'aa', 1 /* ServerMainThread */);
178
+ const aInstance = new AClass();
179
+ const cIdentifer = new protocol_1.ProxyIdentifier(false, 'cc', 0 /* ServerExtHost */);
180
+ const cInstance = new CClass();
181
+ B.set(bIdentifier, bInstance);
182
+ A.set(aIdentifier, aInstance);
183
+ C.set(cIdentifer, cInstance);
184
+ bProxyFromA = A.getProxy(bIdentifier);
185
+ aProxyFromC = C.getProxy(aIdentifier);
186
+ aProxyFromB = B.getProxy(aIdentifier);
187
+ cProxyFromA = A.getProxy(cIdentifer);
188
+ bProdyFromC = C.getProxy(bIdentifier);
189
+ cProxyFromA = A.getProxy(cIdentifer);
190
+ done();
191
+ });
192
+ });
193
+ afterEach(() => {
194
+ socket1.close();
195
+ mockServer.close();
196
+ });
197
+ test('simple call C -> A', function (done) {
198
+ delegate = (a1, a2) => a1 + a2;
199
+ aProxyFromC.$m(4, 1).then((res) => {
200
+ assert.equal(res, 5);
201
+ done();
202
+ }, done.fail);
203
+ });
204
+ test('simple call B -> A', function (done) {
205
+ delegate = (a1, a2) => a1 + a2;
206
+ aProxyFromB.$m(4, 1).then((res) => {
207
+ assert.equal(res, 5);
208
+ done();
209
+ }, done.fail);
210
+ });
211
+ test('simple call C -> B', function (done) {
212
+ delegate = (a1, a2) => a1 + a2;
213
+ bProdyFromC.$n(4, 1).then((res) => {
214
+ assert.equal(res, 5);
215
+ done();
216
+ }, done.fail);
217
+ });
218
+ test('simple call A -> C', function (done) {
219
+ delegate = (a1, a2) => a1 + a2;
220
+ cProxyFromA.$o(4, 1).then((res) => {
221
+ assert.equal(res, 5);
222
+ done();
223
+ }, done.fail);
224
+ });
225
+ test('test buffer', function () {
226
+ const b1 = Buffer.allocUnsafe(2);
227
+ const b2 = Buffer.allocUnsafe(1);
228
+ b1.writeUInt8(10, 0);
229
+ b1.writeUInt8(99, 1);
230
+ b2.writeUInt8(20, 0);
231
+ const buf = Buffer.concat([b1, b2]);
232
+ const a1 = buf.readUInt8(0);
233
+ // const bufNew = buf.slice(3);
234
+ const a2 = buf.readUInt8(2);
235
+ console.log('---a1', a1);
236
+ console.log('---a2', a2);
237
+ });
238
+ test('simple call A->C', function (done) {
239
+ delegate = (a1, a2) => a1 + a2;
240
+ cProxyFromA.$o(6, 1).then((res) => {
241
+ assert.equal(res, 7);
242
+ done();
243
+ }, done.fail);
244
+ });
245
+ test('works', () => {
246
+ const result = [];
247
+ const m = new event_1.EventMultiplexer();
248
+ m.event(r => result.push(r));
249
+ const e1 = new event_1.Emitter();
250
+ m.add(e1.event);
251
+ assert.deepEqual(result, []);
252
+ e1.fire(0);
253
+ assert.deepEqual(result, [0]);
254
+ });
255
+ });
256
+ xdescribe('Connection', () => {
257
+ let delegate;
258
+ let aProxy;
259
+ class AClass {
260
+ $m(a1, a2) {
261
+ return Promise.resolve(delegate.call(null, a1, a2));
262
+ }
263
+ }
264
+ class BClass {
265
+ $m(b1, b2) {
266
+ return Promise.resolve(delegate.call(null, b1, b2));
267
+ }
268
+ }
269
+ // Polyfill
270
+ ;
271
+ global.AbortController = abort_controller_1.default;
272
+ let mockServer, socket1;
273
+ const aIdentifier = new protocol_1.ProxyIdentifier(false, 'aa');
274
+ let A, B;
275
+ beforeEach((done) => {
276
+ });
277
+ afterEach(() => {
278
+ socket1.close();
279
+ mockServer.close();
280
+ });
281
+ xtest('handle single request', (done) => __awaiter(void 0, void 0, void 0, function* () {
282
+ const [serverTransports, clientTransports] = test_helper_1.createMessageTransports();
283
+ delegate = (a1, a2) => a1 + a2;
284
+ const server = connection_1.createConnection(serverTransports, consoleLogger);
285
+ proxy_1.handleServerProxyRequest(server, B, aIdentifier);
286
+ server.listen();
287
+ server.onClose(event => done());
288
+ const client = connection_1.createConnection(clientTransports);
289
+ client.listen();
290
+ const signal = new abort_controller_1.default().signal;
291
+ const result = yield client.sendRequest('aa/$m', [4, 1], signal);
292
+ expect(result).toBe(5);
293
+ done();
294
+ }));
295
+ xit('abort undispatched request', (done) => __awaiter(void 0, void 0, void 0, function* () {
296
+ const [serverTransports, clientTransports] = test_helper_1.createMessageTransports();
297
+ const b1 = utils_1.createBarrier();
298
+ const b2 = utils_1.createBarrier();
299
+ delegate = (a1, a2) => a1 + a2;
300
+ const server = connection_1.createConnection(serverTransports, consoleLogger);
301
+ server.onRequest('block', () => __awaiter(void 0, void 0, void 0, function* () {
302
+ b2.done();
303
+ yield b1.wait;
304
+ }));
305
+ // server.onRequest('undispatched', () => {
306
+ // throw new Error('handler should not be called')
307
+ // })
308
+ proxy_1.handleServerProxyRequest(server, B, aIdentifier);
309
+ server.listen();
310
+ const client = connection_1.createConnection(clientTransports);
311
+ client.listen();
312
+ server.onClose(event => done());
313
+ client.sendRequest('block').catch(null);
314
+ yield b2.wait;
315
+ const abortController = new abort_controller_1.default();
316
+ // const result = client.sendRequest('undispatched', ['foo'], abortController.signal)
317
+ const result = client.sendRequest('aa/$m', [4, 1], abortController.signal);
318
+ abortController.abort();
319
+ b1.done();
320
+ yield assert.rejects(result, (err /** : AbortError*/) => err.name === 'AbortError');
321
+ }));
322
+ });
323
+ //# sourceMappingURL=browser-server-rpc.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-server-rpc.test.js","sourceRoot":"","sources":["../../../src/connections/remote-rpc/browser-server-rpc.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const evaluator_1 = require("./evaluator");
4
+ const FIXTURE_CONTEXT = {
5
+ a: 1,
6
+ b: 1,
7
+ c: 2,
8
+ x: 'y',
9
+ o: { k: 'v' },
10
+ array: [7],
11
+ };
12
+ describe('Expression', () => {
13
+ const TESTS = {
14
+ a: 1,
15
+ 'a + b': 2,
16
+ 'a == b': true,
17
+ 'a != b': false,
18
+ 'a + b == c': true,
19
+ x: 'y',
20
+ 'd === false': false,
21
+ 'd !== false': true,
22
+ '!a': false,
23
+ '!!a': true,
24
+ 'a && c': 2,
25
+ 'a || b': 1,
26
+ '(a + b) * 2': 4,
27
+ 'x == "y"': true,
28
+ 'json(o)': '{"k":"v"}',
29
+ // TODO: Support operator precedence. See ./parser.test.ts for a commented-out precedence test case.
30
+ //
31
+ // 'x == "y" || x == "z"': true,
32
+ 'x == "y" && x == "z"': false,
33
+ 'x == "y" && x != "z"': true,
34
+ '`a`': 'a',
35
+ '`${x}`': 'y',
36
+ '`a${x}b`': 'ayb',
37
+ '`_${x}_${a}_${a+b}`': '_y_1_2',
38
+ '`_${`-${x}-`}_`': '_-y-_',
39
+ 'a || isnotdefined': 1,
40
+ 'get(array, 0)': 7,
41
+ 'get(array, 1)': undefined,
42
+ 'get(context, "c")': 2,
43
+ };
44
+ for (const [expression, want] of Object.entries(TESTS)) {
45
+ test(expression, () => {
46
+ const value = evaluator_1.parse(expression).exec(FIXTURE_CONTEXT);
47
+ console.log('--Value---', value, expression, want);
48
+ expect(value).toBe(want);
49
+ });
50
+ }
51
+ });
52
+ //# sourceMappingURL=evaluator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.test.js","sourceRoot":"","sources":["../../../src/core/expr/evaluator.test.ts"],"names":[],"mappings":";;AACA,2CAAmD;AAEnD,MAAM,eAAe,GAAmB;IACpC,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,CAAC;CACb,CAAC;AAGF,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,MAAM,KAAK,GAAG;QACV,CAAC,EAAE,CAAC;QACJ,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;QAClB,CAAC,EAAE,GAAG;QACN,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,IAAI;QACnB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,WAAW;QACtB,oGAAoG;QACpG,EAAE;QACF,gCAAgC;QAChC,sBAAsB,EAAE,KAAK;QAC7B,sBAAsB,EAAE,IAAI;QAC5B,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,KAAK;QACjB,qBAAqB,EAAE,QAAQ;QAC/B,iBAAiB,EAAE,OAAO;QAC1B,mBAAmB,EAAE,CAAC;QACtB,eAAe,EAAE,CAAC;QAClB,eAAe,EAAE,SAAS;QAC1B,mBAAmB,EAAE,CAAC;KACzB,CAAC;IACF,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACpD,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;YAClB,MAAM,KAAK,GAAG,iBAAK,CAAU,UAAU,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAA;KACL;AACL,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* tslint:disable */
4
+ const assert = require("assert");
5
+ const cancellation_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/cancellation");
6
+ const event_1 = require("@vscode-alt/monaco-editor/esm/vs/base/common/event");
7
+ const proxy_identifier_1 = require("./proxy-identifier");
8
+ const rpc_protocol_1 = require("./rpc-protocol");
9
+ const rpc_logger_1 = require("./rpc-logger");
10
+ // import 'jest';
11
+ describe('RPCProtocol', () => {
12
+ class MessagePassingProtocol {
13
+ constructor() {
14
+ this._onMessage = new event_1.Emitter();
15
+ this.onMessage = this._onMessage.event;
16
+ }
17
+ setPair(other) {
18
+ this._pair = other;
19
+ }
20
+ send(buffer) {
21
+ process.nextTick(() => {
22
+ this._pair._onMessage.fire(buffer);
23
+ });
24
+ }
25
+ }
26
+ let delegate;
27
+ let bProxy;
28
+ class BClass {
29
+ $m(a1, a2) {
30
+ return Promise.resolve(delegate.call(null, a1, a2));
31
+ }
32
+ }
33
+ beforeEach(() => {
34
+ let a_protocol = new MessagePassingProtocol();
35
+ let b_protocol = new MessagePassingProtocol();
36
+ a_protocol.setPair(b_protocol);
37
+ b_protocol.setPair(a_protocol);
38
+ let A = new rpc_protocol_1.RPCProtocol(a_protocol, null, new rpc_logger_1.RPCLogger(), null);
39
+ let B = new rpc_protocol_1.RPCProtocol(b_protocol, null, new rpc_logger_1.RPCLogger(), null);
40
+ const bIdentifier = new proxy_identifier_1.ProxyIdentifier(false, 'bb');
41
+ const bInstance = new BClass();
42
+ B.set(bIdentifier, bInstance);
43
+ bProxy = A.getProxy(bIdentifier);
44
+ });
45
+ test('simple call', function (done) {
46
+ delegate = (a1, a2) => a1 + a2;
47
+ bProxy.$m(4, 1).then((res) => {
48
+ assert.equal(res, 5);
49
+ done(null);
50
+ }, done);
51
+ });
52
+ xtest('simple call without result', function (done) {
53
+ delegate = (a1, a2) => { };
54
+ bProxy.$m(4, 1).then((res) => {
55
+ assert.equal(res, undefined);
56
+ done(null);
57
+ }, done);
58
+ });
59
+ xtest('passing buffer as argument', function (done) {
60
+ delegate = (a1, a2) => {
61
+ assert.ok(Buffer.isBuffer(a1));
62
+ return a1[a2];
63
+ };
64
+ let b = Buffer.allocUnsafe(4);
65
+ b[0] = 1;
66
+ b[1] = 2;
67
+ b[2] = 3;
68
+ b[3] = 4;
69
+ bProxy.$m(b, 2).then((res) => {
70
+ assert.equal(res, 3);
71
+ done(null);
72
+ }, done);
73
+ });
74
+ xtest('returning a buffer', function (done) {
75
+ delegate = (a1, a2) => {
76
+ let b = Buffer.allocUnsafe(4);
77
+ b[0] = 1;
78
+ b[1] = 2;
79
+ b[2] = 3;
80
+ b[3] = 4;
81
+ return b;
82
+ };
83
+ bProxy.$m(4, 1).then((res) => {
84
+ assert.ok(Buffer.isBuffer(res));
85
+ assert.equal(res[0], 1);
86
+ assert.equal(res[1], 2);
87
+ assert.equal(res[2], 3);
88
+ assert.equal(res[3], 4);
89
+ done(null);
90
+ }, done);
91
+ });
92
+ xtest('cancelling a call via CancellationToken before', function (done) {
93
+ delegate = (a1, a2) => a1 + a2;
94
+ let p = bProxy.$m(4, cancellation_1.CancellationToken.Cancelled);
95
+ p.then((res) => {
96
+ assert.fail('should not receive result');
97
+ }, (err) => {
98
+ assert.ok(true);
99
+ done(null);
100
+ });
101
+ });
102
+ xtest('passing CancellationToken.None', function (done) {
103
+ delegate = (a1, token) => {
104
+ assert.ok(!!token);
105
+ return a1 + 1;
106
+ };
107
+ bProxy.$m(4, cancellation_1.CancellationToken.None).then((res) => {
108
+ assert.equal(res, 5);
109
+ done(null);
110
+ }, done);
111
+ });
112
+ xtest('cancelling a call via CancellationToken quickly', function (done) {
113
+ // this is an implementation which, when cancellation is triggered, will return 7
114
+ delegate = (a1, token) => {
115
+ return new Promise((resolve, reject) => {
116
+ token.onCancellationRequested((e) => {
117
+ resolve(7);
118
+ });
119
+ });
120
+ };
121
+ let tokenSource = new cancellation_1.CancellationTokenSource();
122
+ let p = bProxy.$m(4, tokenSource.token);
123
+ p.then((res) => {
124
+ assert.equal(res, 7);
125
+ done(null);
126
+ }, (err) => {
127
+ assert.fail('should not receive error');
128
+ done();
129
+ });
130
+ tokenSource.cancel();
131
+ });
132
+ xtest('throwing an error', function (done) {
133
+ delegate = (a1, a2) => {
134
+ throw new Error(`nope`);
135
+ };
136
+ bProxy.$m(4, 1).then((res) => {
137
+ assert.fail('unexpected');
138
+ done(null);
139
+ }, (err) => {
140
+ assert.equal(err.message, 'nope');
141
+ done(null);
142
+ });
143
+ });
144
+ xtest('error promise', function (done) {
145
+ delegate = (a1, a2) => {
146
+ return Promise.reject(undefined);
147
+ };
148
+ bProxy.$m(4, 1).then((res) => {
149
+ assert.fail('unexpected');
150
+ done(null);
151
+ }, (err) => {
152
+ assert.equal(err, undefined);
153
+ done(null);
154
+ });
155
+ });
156
+ xtest('issue #60450: Converting circular structure to JSON', function (done) {
157
+ delegate = (a1, a2) => {
158
+ let circular = {};
159
+ circular.self = circular;
160
+ return circular;
161
+ };
162
+ bProxy.$m(4, 1).then((res) => {
163
+ assert.equal(res, null);
164
+ done(null);
165
+ }, (err) => {
166
+ assert.fail('unexpected');
167
+ done(null);
168
+ });
169
+ });
170
+ });
171
+ //# sourceMappingURL=rpc-protocol.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc-protocol.test.js","sourceRoot":"","sources":["../../src/protocol/rpc-protocol.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* tslint:disable */
4
+ const rxjs_1 = require("rxjs");
5
+ const testing_1 = require("rxjs/testing");
6
+ const combineLatestOrDefault_1 = require("./combineLatestOrDefault");
7
+ const scheduler = () => new testing_1.TestScheduler((a, b) => expect(a).toEqual(b));
8
+ describe('combineLatestOrDefault', () => {
9
+ describe('with 0 source observables', () => {
10
+ test('emits an empty array and completes', () => scheduler().run(({ expectObservable }) => expectObservable(combineLatestOrDefault_1.combineLatestOrDefault([], 'x')).toBe('(a|)', {
11
+ a: [],
12
+ })));
13
+ });
14
+ describe('with 1 source observable', () => {
15
+ test('waits to emit/complete until the source observable emits/completes', () => scheduler().run(({ cold, expectObservable }) => expectObservable(combineLatestOrDefault_1.combineLatestOrDefault([cold('-b-|', { b: 1 })])).toBe('-b-|', {
16
+ b: [1],
17
+ })));
18
+ });
19
+ describe('of()', () => {
20
+ test('handles 1 of() source observable', () => scheduler().run(({ expectObservable }) => expectObservable(combineLatestOrDefault_1.combineLatestOrDefault([rxjs_1.of(1)])).toBe('(a|)', {
21
+ a: [1],
22
+ })));
23
+ test('handles 2 of() source observables', () => scheduler().run(({ expectObservable }) => expectObservable(combineLatestOrDefault_1.combineLatestOrDefault([rxjs_1.of(1), rxjs_1.of(2)])).toBe('(a|)', {
24
+ a: [1, 2],
25
+ })));
26
+ });
27
+ test('handles source observables with staggered emissions', () => scheduler().run(({ cold, expectObservable }) => expectObservable(combineLatestOrDefault_1.combineLatestOrDefault([cold('-b-|', { b: 1 }), cold('--c|', { c: 2 })])).toBe('-bc|', {
28
+ b: [1],
29
+ c: [1, 2],
30
+ })));
31
+ test('handles source observables with staggered completions', () => scheduler().run(({ cold, expectObservable }) => expectObservable(combineLatestOrDefault_1.combineLatestOrDefault([cold('a|', { a: 1 }), cold('a-|', { a: 2 })])).toBe('a-|', {
32
+ a: [1, 2],
33
+ })));
34
+ test('handles source observables with concurrent emissions', () => scheduler().run(({ cold, expectObservable }) => expectObservable(combineLatestOrDefault_1.combineLatestOrDefault([cold('-b-|', { b: 1 }), cold('-b-|', { b: 2 })])).toBe('-b-|', {
35
+ b: [1, 2],
36
+ })));
37
+ test('handles observables with staggered and concurrent emissions', () => scheduler().run(({ cold, expectObservable }) => expectObservable(combineLatestOrDefault_1.combineLatestOrDefault([
38
+ cold('a-|', { a: 1 }),
39
+ cold('ab|', { a: 2, b: 3 }),
40
+ cold('-bc-|', { b: 4, c: 5 }),
41
+ ])).toBe('abc-|', {
42
+ a: [1, 2],
43
+ b: [1, 3, 4],
44
+ c: [1, 3, 5],
45
+ })));
46
+ test('fills in the default value if provided', () => scheduler().run(({ cold, expectObservable }) => expectObservable(combineLatestOrDefault_1.combineLatestOrDefault([cold('a--|', { a: 1 }), cold('-b-|', { b: 2 }), cold('--c|', { c: 3 })], 42)).toBe('abc|', {
47
+ a: [1, 42, 42],
48
+ b: [1, 2, 42],
49
+ c: [1, 2, 3],
50
+ })));
51
+ });
52
+ //# sourceMappingURL=combineLatestOrDefault.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combineLatestOrDefault.test.js","sourceRoot":"","sources":["../../../src/utils/rxjs/combineLatestOrDefault.test.ts"],"names":[],"mappings":"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"}