@web-widget/vue2 1.46.0 → 1.48.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.
@@ -20,6 +20,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
 
21
21
  // src/client.ts
22
22
  import { defineRender, getComponentDescriptor } from "@web-widget/helpers";
23
+ import { cacheProviderIsLoading } from "@web-widget/helpers/cache";
23
24
  import Vue2 from "vue";
24
25
  export * from "@web-widget/helpers";
25
26
  import { useWidgetSyncState } from "@web-widget/helpers/state";
@@ -29,6 +30,12 @@ import { WebWidgetRenderer } from "@web-widget/web-widget";
29
30
  import Vue, { h, defineComponent, useAttrs, getCurrentInstance } from "vue";
30
31
  import { IS_CLIENT } from "@web-widget/helpers/env";
31
32
  Vue.config.ignoredElements = ["web-widget"];
33
+ Vue.config.warnHandler = (msg, vm, trace) => {
34
+ if (msg === `Error in setup: "[object Promise]"`) {
35
+ return;
36
+ }
37
+ console.error("[Vue warn]: ".concat(msg).concat(trace));
38
+ };
32
39
  function defineWebWidget(loader, options) {
33
40
  var _a, _b;
34
41
  return defineComponent({
@@ -110,7 +117,7 @@ var createVueRender = ({
110
117
  onPrefetchData
111
118
  } = {}) => {
112
119
  return defineRender(async (context) => {
113
- const { recovering, container } = context;
120
+ let { recovering, container } = context;
114
121
  const componentDescriptor = getComponentDescriptor(context);
115
122
  const component = componentDescriptor.component;
116
123
  const props = componentDescriptor.props;
@@ -123,48 +130,65 @@ var createVueRender = ({
123
130
  let app;
124
131
  return {
125
132
  async mount() {
126
- let element = container;
133
+ let ssrRoot = container;
127
134
  let mergedProps = props;
128
135
  if (recovering) {
129
136
  const vue2ssrAttrSelector = `[data-server-rendered="true"]`;
130
- const ssrRoot = container.querySelector(vue2ssrAttrSelector) || container.firstElementChild;
137
+ const root = container.querySelector(vue2ssrAttrSelector) || container.firstElementChild;
131
138
  const state = container.querySelector(
132
139
  "script[as=state]"
133
140
  );
134
141
  const stateContent = state ? JSON.parse(state.textContent) : onPrefetchData ? await onPrefetchData(context, component, props) : void 0;
135
- if (!ssrRoot) {
142
+ if (!root) {
136
143
  throw new Error(
137
144
  `No element found for hydration: ${vue2ssrAttrSelector}`
138
145
  );
139
146
  }
140
- element = ssrRoot;
147
+ ssrRoot = root;
141
148
  mergedProps = stateContent ? Object.assign(stateContent, props) : props;
142
149
  state == null ? void 0 : state.remove();
143
150
  }
151
+ let loading;
144
152
  app = new Vue2(__spreadValues({
145
153
  render(h2) {
146
154
  return h2(component, {
147
155
  props: mergedProps
148
156
  });
157
+ },
158
+ errorCaptured: (err, vm, info) => {
159
+ if (cacheProviderIsLoading(err)) {
160
+ loading = err;
161
+ return false;
162
+ } else {
163
+ throw err;
164
+ }
149
165
  }
150
166
  }, await onBeforeCreateApp(context, component, mergedProps)));
151
167
  await onCreatedApp(app, context, component, mergedProps);
152
168
  if (recovering) {
153
- app.$mount(element, recovering);
169
+ app.$mount(ssrRoot, recovering);
154
170
  } else {
155
171
  container.appendChild(app.$mount().$el);
156
172
  }
173
+ if (loading) {
174
+ recovering = false;
175
+ clearInsterHTML(container);
176
+ throw loading;
177
+ }
157
178
  },
158
179
  async unmount() {
159
180
  app == null ? void 0 : app.$destroy();
160
- if ("innerHTML" in container) {
161
- container.innerHTML = "";
162
- }
181
+ clearInsterHTML(container);
163
182
  app = null;
164
183
  }
165
184
  };
166
185
  });
167
186
  };
187
+ function clearInsterHTML(container) {
188
+ if ("innerHTML" in container) {
189
+ container.innerHTML = "";
190
+ }
191
+ }
168
192
  var defineVueRender = createVueRender;
169
193
  var render = createVueRender();
170
194
  export {
@@ -68,6 +68,12 @@ var import_web_widget = require("@web-widget/web-widget");
68
68
  var import_vue = __toESM(require("vue"), 1);
69
69
  var import_env = require("@web-widget/helpers/env");
70
70
  import_vue.default.config.ignoredElements = ["web-widget"];
71
+ import_vue.default.config.warnHandler = (msg, vm, trace) => {
72
+ if (msg === `Error in setup: "[object Promise]"`) {
73
+ return;
74
+ }
75
+ console.error("[Vue warn]: ".concat(msg).concat(trace));
76
+ };
71
77
  function defineWebWidget(loader, options) {
72
78
  var _a, _b;
73
79
  return (0, import_vue.defineComponent)({
@@ -142,12 +148,6 @@ function toReact(component) {
142
148
  }
143
149
 
144
150
  // src/server.ts
145
- import_vue2.default.config.warnHandler = (msg, vm, trace) => {
146
- if (msg === `Error in setup: "[object Promise]"`) {
147
- return;
148
- }
149
- console.error("[Vue warn]: ".concat(msg).concat(trace));
150
- };
151
151
  var createVueRender = ({
152
152
  onBeforeCreateApp = async () => ({}),
153
153
  onCreatedApp = async () => {
@@ -31,6 +31,12 @@ import { WebWidgetRenderer } from "@web-widget/web-widget";
31
31
  import Vue, { h, defineComponent, useAttrs, getCurrentInstance } from "vue";
32
32
  import { IS_CLIENT } from "@web-widget/helpers/env";
33
33
  Vue.config.ignoredElements = ["web-widget"];
34
+ Vue.config.warnHandler = (msg, vm, trace) => {
35
+ if (msg === `Error in setup: "[object Promise]"`) {
36
+ return;
37
+ }
38
+ console.error("[Vue warn]: ".concat(msg).concat(trace));
39
+ };
34
40
  function defineWebWidget(loader, options) {
35
41
  var _a, _b;
36
42
  return defineComponent({
@@ -105,12 +111,6 @@ function toReact(component) {
105
111
  }
106
112
 
107
113
  // src/server.ts
108
- Vue2.config.warnHandler = (msg, vm, trace) => {
109
- if (msg === `Error in setup: "[object Promise]"`) {
110
- return;
111
- }
112
- console.error("[Vue warn]: ".concat(msg).concat(trace));
113
- };
114
114
  var createVueRender = ({
115
115
  onBeforeCreateApp = async () => ({}),
116
116
  onCreatedApp = async () => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@web-widget/vue2",
3
3
  "description": "Vue2 adapter",
4
- "version": "1.46.0",
4
+ "version": "1.48.0",
5
5
  "homepage": "https://github.com/web-widget/web-widget#readme",
6
6
  "repository": {
7
7
  "type": "git",
@@ -13,19 +13,19 @@
13
13
  },
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@web-widget/react": "1.46.0",
17
- "@web-widget/helpers": "1.46.0",
18
- "@web-widget/vite-plugin": "1.46.0",
19
- "@web-widget/web-widget": "1.46.0"
16
+ "@web-widget/react": "1.48.0",
17
+ "@web-widget/helpers": "1.48.0",
18
+ "@web-widget/vite-plugin": "1.48.0",
19
+ "@web-widget/web-widget": "1.48.0"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/node": "^22.2.0",
23
23
  "tsup": "^8.2.4",
24
24
  "typescript": "^5.5.4",
25
- "vite": "^5.4.0",
25
+ "vite": "^5.4.9",
26
26
  "vue": "^2.7.16",
27
27
  "vue-server-renderer": "^2.7.16",
28
- "@web-widget/react": "1.46.0"
28
+ "@web-widget/react": "1.48.0"
29
29
  },
30
30
  "exports": {
31
31
  ".": {
@@ -53,7 +53,7 @@
53
53
  "dist"
54
54
  ],
55
55
  "peerDependencies": {
56
- "vite": "^5.4.0",
56
+ "vite": "^5.4.9",
57
57
  "vue": "^2.7.16",
58
58
  "vue-server-renderer": "^2.7.16"
59
59
  },