@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.
Files changed (2) hide show
  1. package/dist/browser.js +51 -40
  2. 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 create$2 = ({
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,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/ipc",
3
- "version": "11.2.0",
3
+ "version": "11.3.0",
4
4
  "description": "Inter Process Communication for Lvce Editor",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",