@nookuio/iframe 0.9.0 → 0.9.2

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.
@@ -36,7 +36,9 @@ function createClient(localCtx, options) {
36
36
  key: request.key,
37
37
  result: void 0
38
38
  };
39
- const result = typeof value === "function" ? await value(...deserialize(request.args)) : value;
39
+ let args = request.args ? deserialize(request.args) : [];
40
+ if (!Array.isArray(args)) args = [args];
41
+ const result = typeof value === "function" ? await value(...args) : value;
40
42
  return {
41
43
  type: "response",
42
44
  id: request.id,
@@ -47,7 +49,9 @@ function createClient(localCtx, options) {
47
49
  handleEvent(request => {
48
50
  const currentEventListeners = listenersCollection.get(request.eventName);
49
51
  if (!currentEventListeners?.length) return;
50
- currentEventListeners.forEach(listener => listener(...deserialize(request.args || [])));
52
+ let args = request.args ? deserialize(request.args) : [];
53
+ if (!Array.isArray(args)) args = [args];
54
+ currentEventListeners.forEach(listener => listener(...args));
51
55
  });
52
56
  const proxyCache = /* @__PURE__ */new Map();
53
57
  function createProxyForPath(path) {
@@ -109,10 +113,9 @@ function createClient(localCtx, options) {
109
113
  }
110
114
  if (prop === "emit") {
111
115
  const emitHandler = (eventName, ...args) => {
112
- args = args.map(arg => serialize(arg));
113
116
  emit({
114
117
  eventName,
115
- args
118
+ args: serialize(args)
116
119
  });
117
120
  };
118
121
  return emitHandler;
@@ -24,7 +24,9 @@ export function createClient(localCtx, options) {
24
24
  key: request.key,
25
25
  result: void 0
26
26
  };
27
- const result = typeof value === "function" ? await value(...deserialize(request.args)) : value;
27
+ let args = request.args ? deserialize(request.args) : [];
28
+ if (!Array.isArray(args)) args = [args];
29
+ const result = typeof value === "function" ? await value(...args) : value;
28
30
  return {
29
31
  type: "response",
30
32
  id: request.id,
@@ -35,7 +37,9 @@ export function createClient(localCtx, options) {
35
37
  handleEvent((request) => {
36
38
  const currentEventListeners = listenersCollection.get(request.eventName);
37
39
  if (!currentEventListeners?.length) return;
38
- currentEventListeners.forEach((listener) => listener(...deserialize(request.args || [])));
40
+ let args = request.args ? deserialize(request.args) : [];
41
+ if (!Array.isArray(args)) args = [args];
42
+ currentEventListeners.forEach((listener) => listener(...args));
39
43
  });
40
44
  const proxyCache = /* @__PURE__ */ new Map();
41
45
  function createProxyForPath(path) {
@@ -99,8 +103,7 @@ export function createClient(localCtx, options) {
99
103
  }
100
104
  if (prop === "emit") {
101
105
  const emitHandler = (eventName, ...args) => {
102
- args = args.map((arg) => serialize(arg));
103
- emit({ eventName, args });
106
+ emit({ eventName, args: serialize(args) });
104
107
  };
105
108
  return emitHandler;
106
109
  }
package/dist/editor.js CHANGED
@@ -48,7 +48,7 @@ function createEditorClient(iframe) {
48
48
  handle(handler) {
49
49
  window.addEventListener("message", async event => {
50
50
  if (typeof event.data !== "object") return;
51
- if (event.data.source !== _constants.IFRAME_SOURCE_NAME) return;
51
+ if (event.data.source !== _constants.IFRAME_SOURCE_NAME || event.data.type === "event" || !event.data.request) return;
52
52
  const iframe2 = getIframe();
53
53
  if (!iframe2) return;
54
54
  const response = await handler(event.data.request);
@@ -80,7 +80,7 @@ function createEditorClient(iframe) {
80
80
  resolve(event.data.response);
81
81
  }
82
82
  iframe2.contentWindow?.postMessage({
83
- source: _constants.IFRAME_SOURCE_NAME,
83
+ source: _constants.EDITOR_SOURCE_NAME,
84
84
  request
85
85
  }, "*");
86
86
  window.addEventListener("message", messageHandler);
@@ -91,13 +91,14 @@ function createEditorClient(iframe) {
91
91
  if (!iframe2) return;
92
92
  iframe2.contentWindow?.postMessage({
93
93
  source: _constants.EDITOR_SOURCE_NAME,
94
+ type: "event",
94
95
  request
95
96
  }, "*");
96
97
  },
97
98
  handleEvent(handleRequest) {
98
99
  window.addEventListener("message", event => {
99
100
  if (typeof event.data !== "object") return;
100
- if (event.data.source !== _constants.IFRAME_SOURCE_NAME || !event.data.request) return;
101
+ if (event.data.source !== _constants.IFRAME_SOURCE_NAME || event.data.type !== "event" || !event.data.request) return;
101
102
  handleRequest(event.data.request);
102
103
  });
103
104
  },
package/dist/editor.mjs CHANGED
@@ -42,7 +42,7 @@ export function createEditorClient(iframe) {
42
42
  handle(handler) {
43
43
  window.addEventListener("message", async (event) => {
44
44
  if (typeof event.data !== "object") return;
45
- if (event.data.source !== IFRAME_SOURCE_NAME) return;
45
+ if (event.data.source !== IFRAME_SOURCE_NAME || event.data.type === "event" || !event.data.request) return;
46
46
  const iframe2 = getIframe();
47
47
  if (!iframe2) return;
48
48
  const response = await handler(event.data.request);
@@ -71,19 +71,19 @@ export function createEditorClient(iframe) {
71
71
  window.removeEventListener("message", messageHandler);
72
72
  resolve(event.data.response);
73
73
  }
74
- iframe2.contentWindow?.postMessage({ source: IFRAME_SOURCE_NAME, request }, "*");
74
+ iframe2.contentWindow?.postMessage({ source: EDITOR_SOURCE_NAME, request }, "*");
75
75
  window.addEventListener("message", messageHandler);
76
76
  });
77
77
  },
78
78
  emit(request) {
79
79
  const iframe2 = getIframe();
80
80
  if (!iframe2) return;
81
- iframe2.contentWindow?.postMessage({ source: EDITOR_SOURCE_NAME, request }, "*");
81
+ iframe2.contentWindow?.postMessage({ source: EDITOR_SOURCE_NAME, type: "event", request }, "*");
82
82
  },
83
83
  handleEvent(handleRequest) {
84
84
  window.addEventListener("message", (event) => {
85
85
  if (typeof event.data !== "object") return;
86
- if (event.data.source !== IFRAME_SOURCE_NAME || !event.data.request) return;
86
+ if (event.data.source !== IFRAME_SOURCE_NAME || event.data.type !== "event" || !event.data.request) return;
87
87
  handleRequest(event.data.request);
88
88
  });
89
89
  },
package/dist/iframe.js CHANGED
@@ -89,7 +89,7 @@ function createVueIframeClient(vueCtx, options) {
89
89
  let elementPath = element.getAttribute("data-node-path");
90
90
  if (elementPath !== path) {
91
91
  if (!element.parentElement) return;
92
- while (element.parentElement && path !== path) {
92
+ while (element.parentElement && elementPath !== path) {
93
93
  element = element.parentElement;
94
94
  elementPath = element.getAttribute("data-node-path");
95
95
  }
@@ -145,7 +145,7 @@ function createVueIframeClient(vueCtx, options) {
145
145
  handle(handler) {
146
146
  window.addEventListener("message", async event => {
147
147
  if (typeof event.data !== "object") return;
148
- if (event.data.source !== _constants.EDITOR_SOURCE_NAME) return;
148
+ if (event.data.source !== _constants.EDITOR_SOURCE_NAME || event.data.type === "event" || !event.data.request) return;
149
149
  const response = await handler(event.data.request);
150
150
  window.parent.postMessage({
151
151
  source: _constants.IFRAME_SOURCE_NAME,
@@ -177,13 +177,14 @@ function createVueIframeClient(vueCtx, options) {
177
177
  emit(request) {
178
178
  window.parent.postMessage({
179
179
  source: _constants.IFRAME_SOURCE_NAME,
180
+ type: "event",
180
181
  request
181
182
  }, "*");
182
183
  },
183
184
  handleEvent(handleRequest) {
184
185
  window.addEventListener("message", event => {
185
186
  if (typeof event.data !== "object") return;
186
- if (event.data.source !== _constants.EDITOR_SOURCE_NAME || !event.data.request) return;
187
+ if (event.data.source !== _constants.EDITOR_SOURCE_NAME || event.data.type !== "event" || !event.data.request) return;
187
188
  handleRequest(event.data.request);
188
189
  });
189
190
  },
package/dist/iframe.mjs CHANGED
@@ -72,7 +72,7 @@ export function createVueIframeClient(vueCtx, options) {
72
72
  let elementPath = element.getAttribute("data-node-path");
73
73
  if (elementPath !== path) {
74
74
  if (!element.parentElement) return;
75
- while (element.parentElement && path !== path) {
75
+ while (element.parentElement && elementPath !== path) {
76
76
  element = element.parentElement;
77
77
  elementPath = element.getAttribute("data-node-path");
78
78
  }
@@ -126,7 +126,7 @@ export function createVueIframeClient(vueCtx, options) {
126
126
  handle(handler) {
127
127
  window.addEventListener("message", async (event) => {
128
128
  if (typeof event.data !== "object") return;
129
- if (event.data.source !== EDITOR_SOURCE_NAME) return;
129
+ if (event.data.source !== EDITOR_SOURCE_NAME || event.data.type === "event" || !event.data.request) return;
130
130
  const response = await handler(event.data.request);
131
131
  window.parent.postMessage({ source: IFRAME_SOURCE_NAME, response }, "*");
132
132
  });
@@ -150,12 +150,12 @@ export function createVueIframeClient(vueCtx, options) {
150
150
  });
151
151
  },
152
152
  emit(request) {
153
- window.parent.postMessage({ source: IFRAME_SOURCE_NAME, request }, "*");
153
+ window.parent.postMessage({ source: IFRAME_SOURCE_NAME, type: "event", request }, "*");
154
154
  },
155
155
  handleEvent(handleRequest) {
156
156
  window.addEventListener("message", (event) => {
157
157
  if (typeof event.data !== "object") return;
158
- if (event.data.source !== EDITOR_SOURCE_NAME || !event.data.request) return;
158
+ if (event.data.source !== EDITOR_SOURCE_NAME || event.data.type !== "event" || !event.data.request) return;
159
159
  handleRequest(event.data.request);
160
160
  });
161
161
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nookuio/iframe",
3
3
  "description": "",
4
- "version": "0.9.0",
4
+ "version": "0.9.2",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
7
7
  "exports": {