@lvce-editor/ipc 11.2.0 → 11.3.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 +51 -40
- package/package.json +1 -1
package/dist/browser.js
CHANGED
|
@@ -593,12 +593,62 @@ const IpcChildWithWindow$1 = {
|
|
|
593
593
|
wrap: wrap$3
|
|
594
594
|
};
|
|
595
595
|
|
|
596
|
-
const
|
|
596
|
+
const Message$1 = 3;
|
|
597
|
+
|
|
598
|
+
const addListener = (emitter, type, callback) => {
|
|
599
|
+
if ('addEventListener' in emitter) {
|
|
600
|
+
emitter.addEventListener(type, callback);
|
|
601
|
+
} else {
|
|
602
|
+
emitter.on(type, callback);
|
|
603
|
+
}
|
|
604
|
+
};
|
|
605
|
+
const removeListener = (emitter, type, callback) => {
|
|
606
|
+
if ('removeEventListener' in emitter) {
|
|
607
|
+
emitter.removeEventListener(type, callback);
|
|
608
|
+
} else {
|
|
609
|
+
emitter.off(type, callback);
|
|
610
|
+
}
|
|
611
|
+
};
|
|
612
|
+
const getFirstEvent = (eventEmitter, eventMap) => {
|
|
613
|
+
const {
|
|
614
|
+
resolve,
|
|
615
|
+
promise
|
|
616
|
+
} = withResolvers();
|
|
617
|
+
const listenerMap = Object.create(null);
|
|
618
|
+
const cleanup = value => {
|
|
619
|
+
for (const event of Object.keys(eventMap)) {
|
|
620
|
+
removeListener(eventEmitter, event, listenerMap[event]);
|
|
621
|
+
}
|
|
622
|
+
resolve(value);
|
|
623
|
+
};
|
|
624
|
+
for (const [event, type] of Object.entries(eventMap)) {
|
|
625
|
+
const listener = event => {
|
|
626
|
+
cleanup({
|
|
627
|
+
type,
|
|
628
|
+
event
|
|
629
|
+
});
|
|
630
|
+
};
|
|
631
|
+
addListener(eventEmitter, event, listener);
|
|
632
|
+
listenerMap[event] = listener;
|
|
633
|
+
}
|
|
634
|
+
return promise;
|
|
635
|
+
};
|
|
636
|
+
|
|
637
|
+
const create$2 = async ({
|
|
597
638
|
messagePort
|
|
598
639
|
}) => {
|
|
599
640
|
if (!isMessagePort(messagePort)) {
|
|
600
641
|
throw new IpcError('port must be of type MessagePort');
|
|
601
642
|
}
|
|
643
|
+
const eventPromise = getFirstEvent(messagePort, {
|
|
644
|
+
message: Message$1
|
|
645
|
+
});
|
|
646
|
+
messagePort.start();
|
|
647
|
+
const event = await eventPromise;
|
|
648
|
+
// @ts-ignore
|
|
649
|
+
if (event.data !== readyMessage) {
|
|
650
|
+
throw new IpcError('unexpected first message');
|
|
651
|
+
}
|
|
602
652
|
return messagePort;
|
|
603
653
|
};
|
|
604
654
|
const signal = messagePort => {
|
|
@@ -637,45 +687,6 @@ const IpcParentWithMessagePort$1 = {
|
|
|
637
687
|
const Message = 'message';
|
|
638
688
|
const Error$1 = 'error';
|
|
639
689
|
|
|
640
|
-
const addListener = (emitter, type, callback) => {
|
|
641
|
-
if ('addEventListener' in emitter) {
|
|
642
|
-
emitter.addEventListener(type, callback);
|
|
643
|
-
} else {
|
|
644
|
-
emitter.on(type, callback);
|
|
645
|
-
}
|
|
646
|
-
};
|
|
647
|
-
const removeListener = (emitter, type, callback) => {
|
|
648
|
-
if ('removeEventListener' in emitter) {
|
|
649
|
-
emitter.removeEventListener(type, callback);
|
|
650
|
-
} else {
|
|
651
|
-
emitter.off(type, callback);
|
|
652
|
-
}
|
|
653
|
-
};
|
|
654
|
-
const getFirstEvent = (eventEmitter, eventMap) => {
|
|
655
|
-
const {
|
|
656
|
-
resolve,
|
|
657
|
-
promise
|
|
658
|
-
} = withResolvers();
|
|
659
|
-
const listenerMap = Object.create(null);
|
|
660
|
-
const cleanup = value => {
|
|
661
|
-
for (const event of Object.keys(eventMap)) {
|
|
662
|
-
removeListener(eventEmitter, event, listenerMap[event]);
|
|
663
|
-
}
|
|
664
|
-
resolve(value);
|
|
665
|
-
};
|
|
666
|
-
for (const [event, type] of Object.entries(eventMap)) {
|
|
667
|
-
const listener = event => {
|
|
668
|
-
cleanup({
|
|
669
|
-
type,
|
|
670
|
-
event
|
|
671
|
-
});
|
|
672
|
-
};
|
|
673
|
-
addListener(eventEmitter, event, listener);
|
|
674
|
-
listenerMap[event] = listener;
|
|
675
|
-
}
|
|
676
|
-
return promise;
|
|
677
|
-
};
|
|
678
|
-
|
|
679
690
|
const getFirstWorkerEvent = worker => {
|
|
680
691
|
return getFirstEvent(worker, {
|
|
681
692
|
message: Message,
|