@lvce-editor/ipc 9.5.1 → 10.0.1
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 +78 -26
- package/dist/electron.js +73 -10
- package/dist/index.js +131 -21
- package/package.json +1 -1
package/dist/browser.js
CHANGED
|
@@ -2,6 +2,65 @@ const getData$1 = event => {
|
|
|
2
2
|
return event.data;
|
|
3
3
|
};
|
|
4
4
|
|
|
5
|
+
const walkValue = (value, transferrables, isTransferrable) => {
|
|
6
|
+
if (!value) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (isTransferrable(value)) {
|
|
10
|
+
transferrables.push(value);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
if (Array.isArray(value)) {
|
|
14
|
+
for (const item of value) {
|
|
15
|
+
walkValue(item, transferrables, isTransferrable);
|
|
16
|
+
}
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === 'object') {
|
|
20
|
+
for (const property of Object.values(value)) {
|
|
21
|
+
walkValue(property, transferrables, isTransferrable);
|
|
22
|
+
}
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const isMessagePort = value => {
|
|
28
|
+
return value && value instanceof MessagePort;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const isMessagePortMain = value => {
|
|
32
|
+
return value && value.constructor && value.constructor.name === 'MessagePortMain';
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const isOffscreenCanvas = value => {
|
|
36
|
+
return typeof OffscreenCanvas !== 'undefined' && value instanceof OffscreenCanvas;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const isInstanceOf = (value, constructorName) => {
|
|
40
|
+
return value?.constructor?.name === constructorName;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const isSocket = value => {
|
|
44
|
+
return isInstanceOf(value, 'Socket');
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const transferrables = [isMessagePort, isMessagePortMain, isOffscreenCanvas, isSocket];
|
|
48
|
+
|
|
49
|
+
const isTransferrable = value => {
|
|
50
|
+
for (const fn of transferrables) {
|
|
51
|
+
if (fn(value)) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const getTransferrables = value => {
|
|
59
|
+
const transferrables = [];
|
|
60
|
+
walkValue(value, transferrables, isTransferrable);
|
|
61
|
+
return transferrables;
|
|
62
|
+
};
|
|
63
|
+
|
|
5
64
|
const attachEvents = that => {
|
|
6
65
|
const handleMessage = (...args) => {
|
|
7
66
|
const data = that.getData(...args);
|
|
@@ -44,7 +103,8 @@ class IpcChildWithModuleWorker extends Ipc {
|
|
|
44
103
|
// @ts-ignore
|
|
45
104
|
this._rawIpc.postMessage(message);
|
|
46
105
|
}
|
|
47
|
-
sendAndTransfer(message
|
|
106
|
+
sendAndTransfer(message) {
|
|
107
|
+
const transfer = getTransferrables(message);
|
|
48
108
|
// @ts-ignore
|
|
49
109
|
this._rawIpc.postMessage(message, transfer);
|
|
50
110
|
}
|
|
@@ -320,7 +380,8 @@ class IpcChildWithModuleWorkerAndMessagePort extends Ipc {
|
|
|
320
380
|
send(message) {
|
|
321
381
|
this._rawIpc.postMessage(message);
|
|
322
382
|
}
|
|
323
|
-
sendAndTransfer(message
|
|
383
|
+
sendAndTransfer(message) {
|
|
384
|
+
const transfer = getTransferrables(message);
|
|
324
385
|
this._rawIpc.postMessage(message, transfer);
|
|
325
386
|
}
|
|
326
387
|
dispose() {
|
|
@@ -359,7 +420,8 @@ class IpcChildWithWindow extends Ipc {
|
|
|
359
420
|
send(message) {
|
|
360
421
|
this._rawIpc.postMessage(message);
|
|
361
422
|
}
|
|
362
|
-
sendAndTransfer(message
|
|
423
|
+
sendAndTransfer(message) {
|
|
424
|
+
const transfer = getTransferrables(message);
|
|
363
425
|
this._rawIpc.postMessage(message, location.origin, transfer);
|
|
364
426
|
}
|
|
365
427
|
dispose() {
|
|
@@ -393,26 +455,15 @@ const IpcChildWithWindow$1 = {
|
|
|
393
455
|
wrap: wrap$4
|
|
394
456
|
};
|
|
395
457
|
|
|
396
|
-
const
|
|
397
|
-
return value instanceof MessagePort;
|
|
398
|
-
};
|
|
399
|
-
|
|
400
|
-
const UntransferrableValue = {};
|
|
401
|
-
|
|
402
|
-
const walkValue = (value, transferrables) => {
|
|
458
|
+
const removeValues = (value, toRemove) => {
|
|
403
459
|
if (!value) {
|
|
404
460
|
return value;
|
|
405
461
|
}
|
|
406
|
-
if (isTransferrable(value)) {
|
|
407
|
-
transferrables.push(value);
|
|
408
|
-
return UntransferrableValue;
|
|
409
|
-
}
|
|
410
462
|
if (Array.isArray(value)) {
|
|
411
463
|
const newItems = [];
|
|
412
464
|
for (const item of value) {
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
newItems.push(newItem);
|
|
465
|
+
if (!toRemove.includes(item)) {
|
|
466
|
+
newItems.push(removeValues(item, toRemove));
|
|
416
467
|
}
|
|
417
468
|
}
|
|
418
469
|
return newItems;
|
|
@@ -420,9 +471,8 @@ const walkValue = (value, transferrables) => {
|
|
|
420
471
|
if (typeof value === 'object') {
|
|
421
472
|
const newObject = Object.create(null);
|
|
422
473
|
for (const [key, property] of Object.entries(value)) {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
newObject[key] = newValue;
|
|
474
|
+
if (!toRemove.includes(property)) {
|
|
475
|
+
newObject[key] = removeValues(property, toRemove);
|
|
426
476
|
}
|
|
427
477
|
}
|
|
428
478
|
return newObject;
|
|
@@ -434,8 +484,8 @@ const walkValue = (value, transferrables) => {
|
|
|
434
484
|
// as parameters. If the transferrable object is a parameter, in electron
|
|
435
485
|
// only an empty objected is received in the main process
|
|
436
486
|
const fixElectronParameters = value => {
|
|
437
|
-
const transfer =
|
|
438
|
-
const newValue =
|
|
487
|
+
const transfer = getTransferrables(value);
|
|
488
|
+
const newValue = removeValues(value, transfer);
|
|
439
489
|
return {
|
|
440
490
|
newValue,
|
|
441
491
|
transfer
|
|
@@ -455,7 +505,7 @@ class IpcChildWithElectronWindow extends Ipc {
|
|
|
455
505
|
send(message) {
|
|
456
506
|
this._rawIpc.postMessage(message);
|
|
457
507
|
}
|
|
458
|
-
sendAndTransfer(message
|
|
508
|
+
sendAndTransfer(message) {
|
|
459
509
|
const {
|
|
460
510
|
newValue,
|
|
461
511
|
transfer
|
|
@@ -511,7 +561,8 @@ class IpcChildWithMessagePort extends Ipc {
|
|
|
511
561
|
send(message) {
|
|
512
562
|
this._rawIpc.postMessage(message);
|
|
513
563
|
}
|
|
514
|
-
sendAndTransfer(message
|
|
564
|
+
sendAndTransfer(message) {
|
|
565
|
+
const transfer = getTransferrables(message);
|
|
515
566
|
this._rawIpc.postMessage(message, transfer);
|
|
516
567
|
}
|
|
517
568
|
dispose() {
|
|
@@ -663,7 +714,8 @@ class IpcParentWithModuleWorker extends Ipc {
|
|
|
663
714
|
send(message) {
|
|
664
715
|
this._rawIpc.postMessage(message);
|
|
665
716
|
}
|
|
666
|
-
sendAndTransfer(message
|
|
717
|
+
sendAndTransfer(message) {
|
|
718
|
+
const transfer = getTransferrables(message);
|
|
667
719
|
this._rawIpc.postMessage(message, transfer);
|
|
668
720
|
}
|
|
669
721
|
dispose() {
|
|
@@ -727,7 +779,7 @@ class IpcParentWithWebSocket extends Ipc {
|
|
|
727
779
|
send(message) {
|
|
728
780
|
this._rawIpc.send(stringifyCompact(message));
|
|
729
781
|
}
|
|
730
|
-
sendAndTransfer(message
|
|
782
|
+
sendAndTransfer(message) {
|
|
731
783
|
throw new Error('sendAndTransfer not supported');
|
|
732
784
|
}
|
|
733
785
|
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,65 @@ class IpcError extends VError {
|
|
|
346
340
|
}
|
|
347
341
|
}
|
|
348
342
|
|
|
343
|
+
const walkValue = (value, transferrables, isTransferrable) => {
|
|
344
|
+
if (!value) {
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
if (isTransferrable(value)) {
|
|
348
|
+
transferrables.push(value);
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
if (Array.isArray(value)) {
|
|
352
|
+
for (const item of value) {
|
|
353
|
+
walkValue(item, transferrables, isTransferrable);
|
|
354
|
+
}
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
if (typeof value === 'object') {
|
|
358
|
+
for (const property of Object.values(value)) {
|
|
359
|
+
walkValue(property, transferrables, isTransferrable);
|
|
360
|
+
}
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
const isMessagePort = value => {
|
|
366
|
+
return value && value instanceof MessagePort;
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
const isMessagePortMain = value => {
|
|
370
|
+
return value && value.constructor && value.constructor.name === 'MessagePortMain';
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
const isOffscreenCanvas = value => {
|
|
374
|
+
return typeof OffscreenCanvas !== 'undefined' && value instanceof OffscreenCanvas;
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
const isInstanceOf = (value, constructorName) => {
|
|
378
|
+
return value?.constructor?.name === constructorName;
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
const isSocket = value => {
|
|
382
|
+
return isInstanceOf(value, 'Socket');
|
|
383
|
+
};
|
|
384
|
+
|
|
385
|
+
const transferrables = [isMessagePort, isMessagePortMain, isOffscreenCanvas, isSocket];
|
|
386
|
+
|
|
387
|
+
const isTransferrable = value => {
|
|
388
|
+
for (const fn of transferrables) {
|
|
389
|
+
if (fn(value)) {
|
|
390
|
+
return true;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
return false;
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
const getTransferrables = value => {
|
|
397
|
+
const transferrables = [];
|
|
398
|
+
walkValue(value, transferrables, isTransferrable);
|
|
399
|
+
return transferrables;
|
|
400
|
+
};
|
|
401
|
+
|
|
349
402
|
// @ts-ignore
|
|
350
403
|
const create$2 = async ({
|
|
351
404
|
path,
|
|
@@ -393,7 +446,8 @@ class IpcParentWithElectronUtilityProcess extends Ipc {
|
|
|
393
446
|
send(message) {
|
|
394
447
|
this._rawIpc.postMessage(message);
|
|
395
448
|
}
|
|
396
|
-
sendAndTransfer(message
|
|
449
|
+
sendAndTransfer(message) {
|
|
450
|
+
const transfer = getTransferrables(message);
|
|
397
451
|
this._rawIpc.postMessage(message, transfer);
|
|
398
452
|
}
|
|
399
453
|
dispose() {
|
|
@@ -515,6 +569,14 @@ const getFirstNodeChildProcessEvent = async childProcess => {
|
|
|
515
569
|
};
|
|
516
570
|
};
|
|
517
571
|
|
|
572
|
+
const getTransferrablesNode = value => {
|
|
573
|
+
const transferrables = getTransferrables(value);
|
|
574
|
+
if (transferrables.length === 0) {
|
|
575
|
+
throw new Error(`no transferrables found`);
|
|
576
|
+
}
|
|
577
|
+
return transferrables[0];
|
|
578
|
+
};
|
|
579
|
+
|
|
518
580
|
// @ts-ignore
|
|
519
581
|
const create$1 = async ({
|
|
520
582
|
path,
|
|
@@ -566,7 +628,8 @@ class IpcParentWithNodeForkedProcess extends Ipc {
|
|
|
566
628
|
send(message) {
|
|
567
629
|
this._rawIpc.send(message);
|
|
568
630
|
}
|
|
569
|
-
sendAndTransfer(message
|
|
631
|
+
sendAndTransfer(message) {
|
|
632
|
+
const transfer = getTransferrablesNode(message);
|
|
570
633
|
this._rawIpc.send(message, transfer);
|
|
571
634
|
}
|
|
572
635
|
dispose() {
|
|
@@ -697,8 +760,8 @@ const wrap = worker => {
|
|
|
697
760
|
this.worker.postMessage(message);
|
|
698
761
|
},
|
|
699
762
|
// @ts-ignore
|
|
700
|
-
sendAndTransfer(message
|
|
701
|
-
|
|
763
|
+
sendAndTransfer(message) {
|
|
764
|
+
const transfer = getTransferrablesNode(message);
|
|
702
765
|
this.worker.postMessage(message, transfer);
|
|
703
766
|
},
|
|
704
767
|
dispose() {
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,101 @@
|
|
|
1
1
|
import { VError } from '@lvce-editor/verror';
|
|
2
|
-
import { string
|
|
2
|
+
import { string } from '@lvce-editor/assert';
|
|
3
|
+
|
|
4
|
+
const walkValue = (value, transferrables, isTransferrable) => {
|
|
5
|
+
if (!value) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
if (isTransferrable(value)) {
|
|
9
|
+
transferrables.push(value);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (Array.isArray(value)) {
|
|
13
|
+
for (const item of value) {
|
|
14
|
+
walkValue(item, transferrables, isTransferrable);
|
|
15
|
+
}
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (typeof value === 'object') {
|
|
19
|
+
for (const property of Object.values(value)) {
|
|
20
|
+
walkValue(property, transferrables, isTransferrable);
|
|
21
|
+
}
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const isMessagePort = value => {
|
|
27
|
+
return value && value instanceof MessagePort;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const isMessagePortMain = value => {
|
|
31
|
+
return value && value.constructor && value.constructor.name === 'MessagePortMain';
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const isOffscreenCanvas = value => {
|
|
35
|
+
return typeof OffscreenCanvas !== 'undefined' && value instanceof OffscreenCanvas;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const isInstanceOf = (value, constructorName) => {
|
|
39
|
+
return value?.constructor?.name === constructorName;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const isSocket = value => {
|
|
43
|
+
return isInstanceOf(value, 'Socket');
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const transferrables = [isMessagePort, isMessagePortMain, isOffscreenCanvas, isSocket];
|
|
47
|
+
|
|
48
|
+
const isTransferrable = value => {
|
|
49
|
+
for (const fn of transferrables) {
|
|
50
|
+
if (fn(value)) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const getTransferrables = value => {
|
|
58
|
+
const transferrables = [];
|
|
59
|
+
walkValue(value, transferrables, isTransferrable);
|
|
60
|
+
return transferrables;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const removeValues = (value, toRemove) => {
|
|
64
|
+
if (!value) {
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
if (Array.isArray(value)) {
|
|
68
|
+
const newItems = [];
|
|
69
|
+
for (const item of value) {
|
|
70
|
+
if (!toRemove.includes(item)) {
|
|
71
|
+
newItems.push(removeValues(item, toRemove));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return newItems;
|
|
75
|
+
}
|
|
76
|
+
if (typeof value === 'object') {
|
|
77
|
+
const newObject = Object.create(null);
|
|
78
|
+
for (const [key, property] of Object.entries(value)) {
|
|
79
|
+
if (!toRemove.includes(property)) {
|
|
80
|
+
newObject[key] = removeValues(property, toRemove);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return newObject;
|
|
84
|
+
}
|
|
85
|
+
return value;
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// workaround for electron not supporting transferrable objects
|
|
89
|
+
// as parameters. If the transferrable object is a parameter, in electron
|
|
90
|
+
// only an empty objected is received in the main process
|
|
91
|
+
const fixElectronParameters = value => {
|
|
92
|
+
const transfer = getTransferrables(value);
|
|
93
|
+
const newValue = removeValues(value, transfer);
|
|
94
|
+
return {
|
|
95
|
+
newValue,
|
|
96
|
+
transfer
|
|
97
|
+
};
|
|
98
|
+
};
|
|
3
99
|
|
|
4
100
|
const attachEvents = that => {
|
|
5
101
|
const handleMessage = (...args) => {
|
|
@@ -168,10 +264,6 @@ class IpcError extends VError {
|
|
|
168
264
|
}
|
|
169
265
|
}
|
|
170
266
|
|
|
171
|
-
const isMessagePortMain = value => {
|
|
172
|
-
return value && value.constructor && value.constructor.name === 'MessagePortMain';
|
|
173
|
-
};
|
|
174
|
-
|
|
175
267
|
const listen$8 = ({
|
|
176
268
|
messagePort
|
|
177
269
|
}) => {
|
|
@@ -206,8 +298,12 @@ class IpcChildWithElectronMessagePort extends Ipc {
|
|
|
206
298
|
send(message) {
|
|
207
299
|
this._rawIpc.postMessage(message);
|
|
208
300
|
}
|
|
209
|
-
sendAndTransfer(message
|
|
210
|
-
|
|
301
|
+
sendAndTransfer(message) {
|
|
302
|
+
const {
|
|
303
|
+
newValue,
|
|
304
|
+
transfer
|
|
305
|
+
} = fixElectronParameters(message);
|
|
306
|
+
this._rawIpc.postMessage(newValue, transfer);
|
|
211
307
|
}
|
|
212
308
|
dispose() {
|
|
213
309
|
this._rawIpc.close();
|
|
@@ -267,8 +363,12 @@ class IpcChildWithElectronUtilityProcess extends Ipc {
|
|
|
267
363
|
send(message) {
|
|
268
364
|
this._rawIpc.postMessage(message);
|
|
269
365
|
}
|
|
270
|
-
sendAndTransfer(message
|
|
271
|
-
|
|
366
|
+
sendAndTransfer(message) {
|
|
367
|
+
const {
|
|
368
|
+
newValue,
|
|
369
|
+
transfer
|
|
370
|
+
} = fixElectronParameters(message);
|
|
371
|
+
this._rawIpc.postMessage(newValue, transfer);
|
|
272
372
|
}
|
|
273
373
|
dispose() {
|
|
274
374
|
this._rawIpc.close();
|
|
@@ -313,7 +413,8 @@ class IpcChildWithModuleWorker extends Ipc {
|
|
|
313
413
|
// @ts-ignore
|
|
314
414
|
this._rawIpc.postMessage(message);
|
|
315
415
|
}
|
|
316
|
-
sendAndTransfer(message
|
|
416
|
+
sendAndTransfer(message) {
|
|
417
|
+
const transfer = getTransferrables(message);
|
|
317
418
|
// @ts-ignore
|
|
318
419
|
this._rawIpc.postMessage(message, transfer);
|
|
319
420
|
}
|
|
@@ -388,7 +489,8 @@ class IpcChildWithModuleWorkerAndMessagePort extends Ipc {
|
|
|
388
489
|
send(message) {
|
|
389
490
|
this._rawIpc.postMessage(message);
|
|
390
491
|
}
|
|
391
|
-
sendAndTransfer(message
|
|
492
|
+
sendAndTransfer(message) {
|
|
493
|
+
const transfer = getTransferrables(message);
|
|
392
494
|
this._rawIpc.postMessage(message, transfer);
|
|
393
495
|
}
|
|
394
496
|
dispose() {
|
|
@@ -414,6 +516,14 @@ const IpcChildWithModuleWorkerAndMessagePort$1 = {
|
|
|
414
516
|
wrap: wrap$8
|
|
415
517
|
};
|
|
416
518
|
|
|
519
|
+
const getTransferrablesNode = value => {
|
|
520
|
+
const transferrables = getTransferrables(value);
|
|
521
|
+
if (transferrables.length === 0) {
|
|
522
|
+
throw new Error(`no transferrables found`);
|
|
523
|
+
}
|
|
524
|
+
return transferrables[0];
|
|
525
|
+
};
|
|
526
|
+
|
|
417
527
|
const listen$4 = async () => {
|
|
418
528
|
if (!process.send) {
|
|
419
529
|
throw new Error('process.send must be defined');
|
|
@@ -448,7 +558,8 @@ class IpcChildWithNodeForkedProcess extends Ipc {
|
|
|
448
558
|
onMessage(callback) {
|
|
449
559
|
this._rawIpc.on('message', callback);
|
|
450
560
|
}
|
|
451
|
-
sendAndTransfer(message
|
|
561
|
+
sendAndTransfer(message) {
|
|
562
|
+
const transfer = getTransferrablesNode(message);
|
|
452
563
|
this._rawIpc.send(message, transfer);
|
|
453
564
|
}
|
|
454
565
|
dispose() {
|
|
@@ -466,10 +577,6 @@ const IpcChildWithNodeForkedProcess$1 = {
|
|
|
466
577
|
wrap: wrap$7
|
|
467
578
|
};
|
|
468
579
|
|
|
469
|
-
const isMessagePort = value => {
|
|
470
|
-
return value && value instanceof MessagePort;
|
|
471
|
-
};
|
|
472
|
-
|
|
473
580
|
const listen$3 = async ({
|
|
474
581
|
messagePort
|
|
475
582
|
}) => {
|
|
@@ -584,7 +691,8 @@ class IpcChildWithRendererProcess2 extends Ipc {
|
|
|
584
691
|
send(message) {
|
|
585
692
|
this._rawIpc.postMessage(preloadChannelType, message);
|
|
586
693
|
}
|
|
587
|
-
sendAndTransfer(message
|
|
694
|
+
sendAndTransfer(message) {
|
|
695
|
+
const transfer = getTransferrables(message);
|
|
588
696
|
this._rawIpc.postMessage(preloadChannelType, message, transfer);
|
|
589
697
|
}
|
|
590
698
|
dispose() {
|
|
@@ -904,7 +1012,8 @@ class IpcParentWithElectronUtilityProcess extends Ipc {
|
|
|
904
1012
|
send(message) {
|
|
905
1013
|
this._rawIpc.postMessage(message);
|
|
906
1014
|
}
|
|
907
|
-
sendAndTransfer(message
|
|
1015
|
+
sendAndTransfer(message) {
|
|
1016
|
+
const transfer = getTransferrables(message);
|
|
908
1017
|
this._rawIpc.postMessage(message, transfer);
|
|
909
1018
|
}
|
|
910
1019
|
dispose() {
|
|
@@ -1077,7 +1186,8 @@ class IpcParentWithNodeForkedProcess extends Ipc {
|
|
|
1077
1186
|
send(message) {
|
|
1078
1187
|
this._rawIpc.send(message);
|
|
1079
1188
|
}
|
|
1080
|
-
sendAndTransfer(message
|
|
1189
|
+
sendAndTransfer(message) {
|
|
1190
|
+
const transfer = getTransferrablesNode(message);
|
|
1081
1191
|
this._rawIpc.send(message, transfer);
|
|
1082
1192
|
}
|
|
1083
1193
|
dispose() {
|
|
@@ -1167,8 +1277,8 @@ const wrap = worker => {
|
|
|
1167
1277
|
this.worker.postMessage(message);
|
|
1168
1278
|
},
|
|
1169
1279
|
// @ts-ignore
|
|
1170
|
-
sendAndTransfer(message
|
|
1171
|
-
|
|
1280
|
+
sendAndTransfer(message) {
|
|
1281
|
+
const transfer = getTransferrablesNode(message);
|
|
1172
1282
|
this.worker.postMessage(message, transfer);
|
|
1173
1283
|
},
|
|
1174
1284
|
dispose() {
|