@lvce-editor/ipc 9.5.1 → 10.0.0
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/dist/browser.js +80 -26
- package/dist/electron.js +67 -10
- package/dist/index.js +125 -21
- package/package.json +1 -1
package/dist/browser.js
CHANGED
|
@@ -2,6 +2,67 @@ const getData$1 = event => {
|
|
|
2
2
|
return event.data;
|
|
3
3
|
};
|
|
4
4
|
|
|
5
|
+
const isMessagePort = value => {
|
|
6
|
+
return value && value instanceof MessagePort;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const isMessagePortMain = value => {
|
|
10
|
+
return value && value.constructor && value.constructor.name === 'MessagePortMain';
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const isOffscreenCanvas = value => {
|
|
14
|
+
return typeof OffscreenCanvas !== 'undefined' && value instanceof OffscreenCanvas;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const isInstanceOf = (value, constructorName) => {
|
|
18
|
+
return value?.constructor?.name === constructorName;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const isSocket = value => {
|
|
22
|
+
return isInstanceOf(value, 'Socket');
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const transferrables = [isMessagePort, isMessagePortMain, isOffscreenCanvas, isSocket];
|
|
26
|
+
|
|
27
|
+
const isTransferrable = value => {
|
|
28
|
+
for (const fn of transferrables) {
|
|
29
|
+
if (fn(value)) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const walkValue = (value, transferrables) => {
|
|
37
|
+
if (!value) {
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
if (isTransferrable(value)) {
|
|
41
|
+
transferrables.push(value);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (Array.isArray(value)) {
|
|
45
|
+
for (const item of value) {
|
|
46
|
+
walkValue(item, transferrables);
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (typeof value === 'object') {
|
|
51
|
+
const newObject = Object.create(null);
|
|
52
|
+
for (const property of Object.values(value)) {
|
|
53
|
+
walkValue(property, transferrables);
|
|
54
|
+
}
|
|
55
|
+
return newObject;
|
|
56
|
+
}
|
|
57
|
+
return value;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const getTransferrables = value => {
|
|
61
|
+
const transferrables = [];
|
|
62
|
+
walkValue(value, transferrables);
|
|
63
|
+
return transferrables;
|
|
64
|
+
};
|
|
65
|
+
|
|
5
66
|
const attachEvents = that => {
|
|
6
67
|
const handleMessage = (...args) => {
|
|
7
68
|
const data = that.getData(...args);
|
|
@@ -44,7 +105,8 @@ class IpcChildWithModuleWorker extends Ipc {
|
|
|
44
105
|
// @ts-ignore
|
|
45
106
|
this._rawIpc.postMessage(message);
|
|
46
107
|
}
|
|
47
|
-
sendAndTransfer(message
|
|
108
|
+
sendAndTransfer(message) {
|
|
109
|
+
const transfer = getTransferrables(message);
|
|
48
110
|
// @ts-ignore
|
|
49
111
|
this._rawIpc.postMessage(message, transfer);
|
|
50
112
|
}
|
|
@@ -320,7 +382,8 @@ class IpcChildWithModuleWorkerAndMessagePort extends Ipc {
|
|
|
320
382
|
send(message) {
|
|
321
383
|
this._rawIpc.postMessage(message);
|
|
322
384
|
}
|
|
323
|
-
sendAndTransfer(message
|
|
385
|
+
sendAndTransfer(message) {
|
|
386
|
+
const transfer = getTransferrables(message);
|
|
324
387
|
this._rawIpc.postMessage(message, transfer);
|
|
325
388
|
}
|
|
326
389
|
dispose() {
|
|
@@ -359,7 +422,8 @@ class IpcChildWithWindow extends Ipc {
|
|
|
359
422
|
send(message) {
|
|
360
423
|
this._rawIpc.postMessage(message);
|
|
361
424
|
}
|
|
362
|
-
sendAndTransfer(message
|
|
425
|
+
sendAndTransfer(message) {
|
|
426
|
+
const transfer = getTransferrables(message);
|
|
363
427
|
this._rawIpc.postMessage(message, location.origin, transfer);
|
|
364
428
|
}
|
|
365
429
|
dispose() {
|
|
@@ -393,26 +457,15 @@ const IpcChildWithWindow$1 = {
|
|
|
393
457
|
wrap: wrap$4
|
|
394
458
|
};
|
|
395
459
|
|
|
396
|
-
const
|
|
397
|
-
return value instanceof MessagePort;
|
|
398
|
-
};
|
|
399
|
-
|
|
400
|
-
const UntransferrableValue = {};
|
|
401
|
-
|
|
402
|
-
const walkValue = (value, transferrables) => {
|
|
460
|
+
const removeValues = (value, toRemove) => {
|
|
403
461
|
if (!value) {
|
|
404
462
|
return value;
|
|
405
463
|
}
|
|
406
|
-
if (isTransferrable(value)) {
|
|
407
|
-
transferrables.push(value);
|
|
408
|
-
return UntransferrableValue;
|
|
409
|
-
}
|
|
410
464
|
if (Array.isArray(value)) {
|
|
411
465
|
const newItems = [];
|
|
412
466
|
for (const item of value) {
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
newItems.push(newItem);
|
|
467
|
+
if (!toRemove.includes(item)) {
|
|
468
|
+
newItems.push(removeValues(item, toRemove));
|
|
416
469
|
}
|
|
417
470
|
}
|
|
418
471
|
return newItems;
|
|
@@ -420,9 +473,8 @@ const walkValue = (value, transferrables) => {
|
|
|
420
473
|
if (typeof value === 'object') {
|
|
421
474
|
const newObject = Object.create(null);
|
|
422
475
|
for (const [key, property] of Object.entries(value)) {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
newObject[key] = newValue;
|
|
476
|
+
if (!toRemove.includes(property)) {
|
|
477
|
+
newObject[key] = removeValues(property, toRemove);
|
|
426
478
|
}
|
|
427
479
|
}
|
|
428
480
|
return newObject;
|
|
@@ -434,8 +486,8 @@ const walkValue = (value, transferrables) => {
|
|
|
434
486
|
// as parameters. If the transferrable object is a parameter, in electron
|
|
435
487
|
// only an empty objected is received in the main process
|
|
436
488
|
const fixElectronParameters = value => {
|
|
437
|
-
const transfer =
|
|
438
|
-
const newValue =
|
|
489
|
+
const transfer = getTransferrables(value);
|
|
490
|
+
const newValue = removeValues(value, transfer);
|
|
439
491
|
return {
|
|
440
492
|
newValue,
|
|
441
493
|
transfer
|
|
@@ -455,7 +507,7 @@ class IpcChildWithElectronWindow extends Ipc {
|
|
|
455
507
|
send(message) {
|
|
456
508
|
this._rawIpc.postMessage(message);
|
|
457
509
|
}
|
|
458
|
-
sendAndTransfer(message
|
|
510
|
+
sendAndTransfer(message) {
|
|
459
511
|
const {
|
|
460
512
|
newValue,
|
|
461
513
|
transfer
|
|
@@ -511,7 +563,8 @@ class IpcChildWithMessagePort extends Ipc {
|
|
|
511
563
|
send(message) {
|
|
512
564
|
this._rawIpc.postMessage(message);
|
|
513
565
|
}
|
|
514
|
-
sendAndTransfer(message
|
|
566
|
+
sendAndTransfer(message) {
|
|
567
|
+
const transfer = getTransferrables(message);
|
|
515
568
|
this._rawIpc.postMessage(message, transfer);
|
|
516
569
|
}
|
|
517
570
|
dispose() {
|
|
@@ -663,7 +716,8 @@ class IpcParentWithModuleWorker extends Ipc {
|
|
|
663
716
|
send(message) {
|
|
664
717
|
this._rawIpc.postMessage(message);
|
|
665
718
|
}
|
|
666
|
-
sendAndTransfer(message
|
|
719
|
+
sendAndTransfer(message) {
|
|
720
|
+
const transfer = getTransferrables(message);
|
|
667
721
|
this._rawIpc.postMessage(message, transfer);
|
|
668
722
|
}
|
|
669
723
|
dispose() {
|
|
@@ -727,7 +781,7 @@ class IpcParentWithWebSocket extends Ipc {
|
|
|
727
781
|
send(message) {
|
|
728
782
|
this._rawIpc.send(stringifyCompact(message));
|
|
729
783
|
}
|
|
730
|
-
sendAndTransfer(message
|
|
784
|
+
sendAndTransfer(message) {
|
|
731
785
|
throw new Error('sendAndTransfer not supported');
|
|
732
786
|
}
|
|
733
787
|
dispose() {
|
package/dist/electron.js
CHANGED
|
@@ -26,12 +26,6 @@ const getType = value => {
|
|
|
26
26
|
return 'unknown';
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
|
-
const array = value => {
|
|
30
|
-
const type = getType(value);
|
|
31
|
-
if (type !== 'array') {
|
|
32
|
-
throw new AssertionError('expected value to be of type array');
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
29
|
const string = value => {
|
|
36
30
|
const type = getType(value);
|
|
37
31
|
if (type !== 'string') {
|
|
@@ -346,6 +340,67 @@ class IpcError extends VError {
|
|
|
346
340
|
}
|
|
347
341
|
}
|
|
348
342
|
|
|
343
|
+
const isMessagePort = value => {
|
|
344
|
+
return value && value instanceof MessagePort;
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
const isMessagePortMain = value => {
|
|
348
|
+
return value && value.constructor && value.constructor.name === 'MessagePortMain';
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
const isOffscreenCanvas = value => {
|
|
352
|
+
return typeof OffscreenCanvas !== 'undefined' && value instanceof OffscreenCanvas;
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
const isInstanceOf = (value, constructorName) => {
|
|
356
|
+
return value?.constructor?.name === constructorName;
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
const isSocket = value => {
|
|
360
|
+
return isInstanceOf(value, 'Socket');
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
const transferrables = [isMessagePort, isMessagePortMain, isOffscreenCanvas, isSocket];
|
|
364
|
+
|
|
365
|
+
const isTransferrable = value => {
|
|
366
|
+
for (const fn of transferrables) {
|
|
367
|
+
if (fn(value)) {
|
|
368
|
+
return true;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
return false;
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
const walkValue = (value, transferrables) => {
|
|
375
|
+
if (!value) {
|
|
376
|
+
return value;
|
|
377
|
+
}
|
|
378
|
+
if (isTransferrable(value)) {
|
|
379
|
+
transferrables.push(value);
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
if (Array.isArray(value)) {
|
|
383
|
+
for (const item of value) {
|
|
384
|
+
walkValue(item, transferrables);
|
|
385
|
+
}
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
if (typeof value === 'object') {
|
|
389
|
+
const newObject = Object.create(null);
|
|
390
|
+
for (const property of Object.values(value)) {
|
|
391
|
+
walkValue(property, transferrables);
|
|
392
|
+
}
|
|
393
|
+
return newObject;
|
|
394
|
+
}
|
|
395
|
+
return value;
|
|
396
|
+
};
|
|
397
|
+
|
|
398
|
+
const getTransferrables = value => {
|
|
399
|
+
const transferrables = [];
|
|
400
|
+
walkValue(value, transferrables);
|
|
401
|
+
return transferrables;
|
|
402
|
+
};
|
|
403
|
+
|
|
349
404
|
// @ts-ignore
|
|
350
405
|
const create$2 = async ({
|
|
351
406
|
path,
|
|
@@ -393,7 +448,8 @@ class IpcParentWithElectronUtilityProcess extends Ipc {
|
|
|
393
448
|
send(message) {
|
|
394
449
|
this._rawIpc.postMessage(message);
|
|
395
450
|
}
|
|
396
|
-
sendAndTransfer(message
|
|
451
|
+
sendAndTransfer(message) {
|
|
452
|
+
const transfer = getTransferrables(message);
|
|
397
453
|
this._rawIpc.postMessage(message, transfer);
|
|
398
454
|
}
|
|
399
455
|
dispose() {
|
|
@@ -566,7 +622,8 @@ class IpcParentWithNodeForkedProcess extends Ipc {
|
|
|
566
622
|
send(message) {
|
|
567
623
|
this._rawIpc.send(message);
|
|
568
624
|
}
|
|
569
|
-
sendAndTransfer(message
|
|
625
|
+
sendAndTransfer(message) {
|
|
626
|
+
const transfer = getTransferrables(message);
|
|
570
627
|
this._rawIpc.send(message, transfer);
|
|
571
628
|
}
|
|
572
629
|
dispose() {
|
|
@@ -697,8 +754,8 @@ const wrap = worker => {
|
|
|
697
754
|
this.worker.postMessage(message);
|
|
698
755
|
},
|
|
699
756
|
// @ts-ignore
|
|
700
|
-
sendAndTransfer(message
|
|
701
|
-
|
|
757
|
+
sendAndTransfer(message) {
|
|
758
|
+
const transfer = getTransferrables(message);
|
|
702
759
|
this.worker.postMessage(message, transfer);
|
|
703
760
|
},
|
|
704
761
|
dispose() {
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,103 @@
|
|
|
1
1
|
import { VError } from '@lvce-editor/verror';
|
|
2
|
-
import { string
|
|
2
|
+
import { string } from '@lvce-editor/assert';
|
|
3
|
+
|
|
4
|
+
const isMessagePort = value => {
|
|
5
|
+
return value && value instanceof MessagePort;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const isMessagePortMain = value => {
|
|
9
|
+
return value && value.constructor && value.constructor.name === 'MessagePortMain';
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const isOffscreenCanvas = value => {
|
|
13
|
+
return typeof OffscreenCanvas !== 'undefined' && value instanceof OffscreenCanvas;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const isInstanceOf = (value, constructorName) => {
|
|
17
|
+
return value?.constructor?.name === constructorName;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const isSocket = value => {
|
|
21
|
+
return isInstanceOf(value, 'Socket');
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const transferrables = [isMessagePort, isMessagePortMain, isOffscreenCanvas, isSocket];
|
|
25
|
+
|
|
26
|
+
const isTransferrable = value => {
|
|
27
|
+
for (const fn of transferrables) {
|
|
28
|
+
if (fn(value)) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const walkValue = (value, transferrables) => {
|
|
36
|
+
if (!value) {
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
if (isTransferrable(value)) {
|
|
40
|
+
transferrables.push(value);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (Array.isArray(value)) {
|
|
44
|
+
for (const item of value) {
|
|
45
|
+
walkValue(item, transferrables);
|
|
46
|
+
}
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (typeof value === 'object') {
|
|
50
|
+
const newObject = Object.create(null);
|
|
51
|
+
for (const property of Object.values(value)) {
|
|
52
|
+
walkValue(property, transferrables);
|
|
53
|
+
}
|
|
54
|
+
return newObject;
|
|
55
|
+
}
|
|
56
|
+
return value;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const getTransferrables = value => {
|
|
60
|
+
const transferrables = [];
|
|
61
|
+
walkValue(value, transferrables);
|
|
62
|
+
return transferrables;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const removeValues = (value, toRemove) => {
|
|
66
|
+
if (!value) {
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
if (Array.isArray(value)) {
|
|
70
|
+
const newItems = [];
|
|
71
|
+
for (const item of value) {
|
|
72
|
+
if (!toRemove.includes(item)) {
|
|
73
|
+
newItems.push(removeValues(item, toRemove));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return newItems;
|
|
77
|
+
}
|
|
78
|
+
if (typeof value === 'object') {
|
|
79
|
+
const newObject = Object.create(null);
|
|
80
|
+
for (const [key, property] of Object.entries(value)) {
|
|
81
|
+
if (!toRemove.includes(property)) {
|
|
82
|
+
newObject[key] = removeValues(property, toRemove);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return newObject;
|
|
86
|
+
}
|
|
87
|
+
return value;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// workaround for electron not supporting transferrable objects
|
|
91
|
+
// as parameters. If the transferrable object is a parameter, in electron
|
|
92
|
+
// only an empty objected is received in the main process
|
|
93
|
+
const fixElectronParameters = value => {
|
|
94
|
+
const transfer = getTransferrables(value);
|
|
95
|
+
const newValue = removeValues(value, transfer);
|
|
96
|
+
return {
|
|
97
|
+
newValue,
|
|
98
|
+
transfer
|
|
99
|
+
};
|
|
100
|
+
};
|
|
3
101
|
|
|
4
102
|
const attachEvents = that => {
|
|
5
103
|
const handleMessage = (...args) => {
|
|
@@ -168,10 +266,6 @@ class IpcError extends VError {
|
|
|
168
266
|
}
|
|
169
267
|
}
|
|
170
268
|
|
|
171
|
-
const isMessagePortMain = value => {
|
|
172
|
-
return value && value.constructor && value.constructor.name === 'MessagePortMain';
|
|
173
|
-
};
|
|
174
|
-
|
|
175
269
|
const listen$8 = ({
|
|
176
270
|
messagePort
|
|
177
271
|
}) => {
|
|
@@ -206,8 +300,12 @@ class IpcChildWithElectronMessagePort extends Ipc {
|
|
|
206
300
|
send(message) {
|
|
207
301
|
this._rawIpc.postMessage(message);
|
|
208
302
|
}
|
|
209
|
-
sendAndTransfer(message
|
|
210
|
-
|
|
303
|
+
sendAndTransfer(message) {
|
|
304
|
+
const {
|
|
305
|
+
newValue,
|
|
306
|
+
transfer
|
|
307
|
+
} = fixElectronParameters(message);
|
|
308
|
+
this._rawIpc.postMessage(newValue, transfer);
|
|
211
309
|
}
|
|
212
310
|
dispose() {
|
|
213
311
|
this._rawIpc.close();
|
|
@@ -267,8 +365,12 @@ class IpcChildWithElectronUtilityProcess extends Ipc {
|
|
|
267
365
|
send(message) {
|
|
268
366
|
this._rawIpc.postMessage(message);
|
|
269
367
|
}
|
|
270
|
-
sendAndTransfer(message
|
|
271
|
-
|
|
368
|
+
sendAndTransfer(message) {
|
|
369
|
+
const {
|
|
370
|
+
newValue,
|
|
371
|
+
transfer
|
|
372
|
+
} = fixElectronParameters(message);
|
|
373
|
+
this._rawIpc.postMessage(newValue, transfer);
|
|
272
374
|
}
|
|
273
375
|
dispose() {
|
|
274
376
|
this._rawIpc.close();
|
|
@@ -313,7 +415,8 @@ class IpcChildWithModuleWorker extends Ipc {
|
|
|
313
415
|
// @ts-ignore
|
|
314
416
|
this._rawIpc.postMessage(message);
|
|
315
417
|
}
|
|
316
|
-
sendAndTransfer(message
|
|
418
|
+
sendAndTransfer(message) {
|
|
419
|
+
const transfer = getTransferrables(message);
|
|
317
420
|
// @ts-ignore
|
|
318
421
|
this._rawIpc.postMessage(message, transfer);
|
|
319
422
|
}
|
|
@@ -388,7 +491,8 @@ class IpcChildWithModuleWorkerAndMessagePort extends Ipc {
|
|
|
388
491
|
send(message) {
|
|
389
492
|
this._rawIpc.postMessage(message);
|
|
390
493
|
}
|
|
391
|
-
sendAndTransfer(message
|
|
494
|
+
sendAndTransfer(message) {
|
|
495
|
+
const transfer = getTransferrables(message);
|
|
392
496
|
this._rawIpc.postMessage(message, transfer);
|
|
393
497
|
}
|
|
394
498
|
dispose() {
|
|
@@ -448,7 +552,8 @@ class IpcChildWithNodeForkedProcess extends Ipc {
|
|
|
448
552
|
onMessage(callback) {
|
|
449
553
|
this._rawIpc.on('message', callback);
|
|
450
554
|
}
|
|
451
|
-
sendAndTransfer(message
|
|
555
|
+
sendAndTransfer(message) {
|
|
556
|
+
const transfer = getTransferrables(message);
|
|
452
557
|
this._rawIpc.send(message, transfer);
|
|
453
558
|
}
|
|
454
559
|
dispose() {
|
|
@@ -466,10 +571,6 @@ const IpcChildWithNodeForkedProcess$1 = {
|
|
|
466
571
|
wrap: wrap$7
|
|
467
572
|
};
|
|
468
573
|
|
|
469
|
-
const isMessagePort = value => {
|
|
470
|
-
return value && value instanceof MessagePort;
|
|
471
|
-
};
|
|
472
|
-
|
|
473
574
|
const listen$3 = async ({
|
|
474
575
|
messagePort
|
|
475
576
|
}) => {
|
|
@@ -584,7 +685,8 @@ class IpcChildWithRendererProcess2 extends Ipc {
|
|
|
584
685
|
send(message) {
|
|
585
686
|
this._rawIpc.postMessage(preloadChannelType, message);
|
|
586
687
|
}
|
|
587
|
-
sendAndTransfer(message
|
|
688
|
+
sendAndTransfer(message) {
|
|
689
|
+
const transfer = getTransferrables(message);
|
|
588
690
|
this._rawIpc.postMessage(preloadChannelType, message, transfer);
|
|
589
691
|
}
|
|
590
692
|
dispose() {
|
|
@@ -904,7 +1006,8 @@ class IpcParentWithElectronUtilityProcess extends Ipc {
|
|
|
904
1006
|
send(message) {
|
|
905
1007
|
this._rawIpc.postMessage(message);
|
|
906
1008
|
}
|
|
907
|
-
sendAndTransfer(message
|
|
1009
|
+
sendAndTransfer(message) {
|
|
1010
|
+
const transfer = getTransferrables(message);
|
|
908
1011
|
this._rawIpc.postMessage(message, transfer);
|
|
909
1012
|
}
|
|
910
1013
|
dispose() {
|
|
@@ -1077,7 +1180,8 @@ class IpcParentWithNodeForkedProcess extends Ipc {
|
|
|
1077
1180
|
send(message) {
|
|
1078
1181
|
this._rawIpc.send(message);
|
|
1079
1182
|
}
|
|
1080
|
-
sendAndTransfer(message
|
|
1183
|
+
sendAndTransfer(message) {
|
|
1184
|
+
const transfer = getTransferrables(message);
|
|
1081
1185
|
this._rawIpc.send(message, transfer);
|
|
1082
1186
|
}
|
|
1083
1187
|
dispose() {
|
|
@@ -1167,8 +1271,8 @@ const wrap = worker => {
|
|
|
1167
1271
|
this.worker.postMessage(message);
|
|
1168
1272
|
},
|
|
1169
1273
|
// @ts-ignore
|
|
1170
|
-
sendAndTransfer(message
|
|
1171
|
-
|
|
1274
|
+
sendAndTransfer(message) {
|
|
1275
|
+
const transfer = getTransferrables(message);
|
|
1172
1276
|
this.worker.postMessage(message, transfer);
|
|
1173
1277
|
},
|
|
1174
1278
|
dispose() {
|