@web-widget/vue 1.56.0 → 1.57.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.
@@ -12,12 +12,7 @@ function installErrorHandler(app, callback, throwUnhandledErrorInProduction = fa
12
12
 
13
13
  // src/components.ts
14
14
  import { WebWidgetRenderer } from "@web-widget/web-widget";
15
- import {
16
- h,
17
- defineComponent,
18
- Suspense,
19
- useAttrs
20
- } from "vue";
15
+ import { h, defineComponent, Suspense, useAttrs } from "vue";
21
16
  import { IS_CLIENT } from "@web-widget/helpers/env";
22
17
  var WebWidget = /* @__PURE__ */ defineComponent({
23
18
  name: "WebWidgetRoot",
@@ -27,15 +22,14 @@ var WebWidget = /* @__PURE__ */ defineComponent({
27
22
  },
28
23
  data: {
29
24
  type: Object,
30
- default: {}
25
+ default: () => ({})
31
26
  },
32
27
  import: {
33
28
  type: String
34
29
  },
35
30
  inactive: {
36
31
  type: Boolean,
37
- // NOTE: If the default value is not set, it will be false here.
38
- default: void 0
32
+ default: false
39
33
  },
40
34
  loader: {
41
35
  type: Function,
@@ -67,7 +61,6 @@ var WebWidget = /* @__PURE__ */ defineComponent({
67
61
  }
68
62
  const widget = new WebWidgetRenderer(loader, {
69
63
  ...props,
70
- // TODO slots.default
71
64
  children: ""
72
65
  });
73
66
  const tag = widget.localName;
@@ -80,7 +73,6 @@ var WebWidget = /* @__PURE__ */ defineComponent({
80
73
  delete attrs.data;
81
74
  return () => h(tag, {
82
75
  ...attrs,
83
- // NOTE: Use attr instead of props.
84
76
  ...IS_CLIENT ? { "^data": data } : { data },
85
77
  innerHTML
86
78
  });
@@ -2,7 +2,6 @@ import * as vue from 'vue';
2
2
  import { PropType, VNode, Component, ComponentPublicInstance, App } from 'vue';
3
3
  import { WebWidgetRendererOptions, Loader } from '@web-widget/web-widget';
4
4
  import { ReactWidgetComponent } from '@web-widget/react';
5
- import { RenderContext, ComponentProps, SerializableValue } from '@web-widget/helpers';
6
5
 
7
6
  interface DefineWebWidgetOptions {
8
7
  base?: WebWidgetRendererOptions['base'];
@@ -56,13 +55,13 @@ declare function defineWebWidget(loader: Loader, options: DefineWebWidgetOptions
56
55
  */
57
56
  declare function toReact<T>(component: Component<T>): ReactWidgetComponent<Omit<T, keyof ComponentPublicInstance | "$route" | "$router">>;
58
57
 
59
- interface SerializableObject {
60
- [key: string]: SerializableValue;
61
- }
62
58
  interface CreateVueRenderOptions {
63
- onCreatedApp?: (app: App<Element>, context: RenderContext, component: Component, props: ComponentProps) => Promise<void>;
64
- /**@deprecated*/
65
- onPrefetchData?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<SerializableObject>;
59
+ onCreatedApp?: (app: App<Element>, context: {
60
+ container?: Element | DocumentFragment;
61
+ data: any;
62
+ progressive?: boolean;
63
+ recovering?: boolean;
64
+ }, component: Component, props: any) => Promise<void>;
66
65
  }
67
66
 
68
67
  export { type CreateVueRenderOptions as C, type DefineWebWidgetOptions as D, defineWebWidget as d, toReact as t };
@@ -1,15 +1,15 @@
1
1
  import * as _web_widget_helpers from '@web-widget/helpers';
2
2
  export * from '@web-widget/helpers';
3
- import { C as CreateVueRenderOptions } from './types-BJGyrdpU.js';
4
- export { D as DefineWebWidgetOptions, d as defineWebWidget, t as toReact } from './types-BJGyrdpU.js';
3
+ import { Component } from 'vue';
4
+ import { C as CreateVueRenderOptions } from './types-E2Dn0qru.js';
5
+ export { D as DefineWebWidgetOptions, d as defineWebWidget, t as toReact } from './types-E2Dn0qru.js';
5
6
  export { useWidgetAsyncState as useWidgetState } from '@web-widget/helpers/state';
6
- import 'vue';
7
7
  import '@web-widget/web-widget';
8
8
  import '@web-widget/react';
9
9
 
10
- declare const createVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_helpers.WidgetRenderContext<unknown>, renderOptions: _web_widget_helpers.WidgetRenderOptions) => Promise<_web_widget_helpers.WidgetRenderResult>;
10
+ declare const createVueRender: ({ onCreatedApp, }?: CreateVueRenderOptions) => _web_widget_helpers.ClientRender<Component, unknown, _web_widget_helpers.ClientRenderOptions, void | _web_widget_helpers.ClientRenderResult<unknown>>;
11
11
  /**@deprecated Please use `createVueRender` instead.*/
12
- declare const defineVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_helpers.WidgetRenderContext<unknown>, renderOptions: _web_widget_helpers.WidgetRenderOptions) => Promise<_web_widget_helpers.WidgetRenderResult>;
13
- declare const render: (context: _web_widget_helpers.WidgetRenderContext<unknown>, renderOptions: _web_widget_helpers.WidgetRenderOptions) => Promise<_web_widget_helpers.WidgetRenderResult>;
12
+ declare const defineVueRender: ({ onCreatedApp, }?: CreateVueRenderOptions) => _web_widget_helpers.ClientRender<Component, unknown, _web_widget_helpers.ClientRenderOptions, void | _web_widget_helpers.ClientRenderResult<unknown>>;
13
+ declare const render: _web_widget_helpers.ClientRender<Component, unknown, _web_widget_helpers.ClientRenderOptions, void | _web_widget_helpers.ClientRenderResult<unknown>>;
14
14
 
15
15
  export { createVueRender, defineVueRender, render };
@@ -2,53 +2,49 @@ import {
2
2
  defineWebWidget,
3
3
  installErrorHandler,
4
4
  toReact
5
- } from "./chunk-PT7NYHHF.js";
5
+ } from "./chunk-DUDJYZZ6.js";
6
6
 
7
7
  // src/client.ts
8
- import { defineRender, getComponentDescriptor } from "@web-widget/helpers";
8
+ import { defineClientRender } from "@web-widget/helpers";
9
9
  import { Suspense, createApp, createSSRApp, h } from "vue";
10
10
  export * from "@web-widget/helpers";
11
11
  import { useWidgetAsyncState } from "@web-widget/helpers/state";
12
+ var createWidgetSuspense = (component) => (props) => h(Suspense, null, [h(component, props)]);
12
13
  var createVueRender = ({
13
14
  onCreatedApp = async () => {
14
- },
15
- onPrefetchData
16
- } = {}) => {
17
- if (onPrefetchData) {
18
- throw new Error(`"onPrefetchData" is not supported.`);
19
15
  }
20
- return defineRender(async (context) => {
21
- const { recovering, container } = context;
22
- const componentDescriptor = getComponentDescriptor(context);
23
- const { component, props } = componentDescriptor;
24
- if (!container) {
25
- throw new Error(`Container required.`);
26
- }
27
- let app;
28
- const WidgetSuspense = (props2) => h(Suspense, null, [h(component, props2)]);
29
- return {
30
- async mount() {
31
- if (recovering) {
32
- app = createSSRApp(WidgetSuspense, props);
33
- } else {
34
- app = createApp(WidgetSuspense, props);
35
- }
36
- let error;
37
- installErrorHandler(app, (err) => {
38
- error = err;
39
- });
40
- await onCreatedApp(app, context, component, props);
41
- app.mount(container);
42
- if (error) {
43
- throw error;
44
- }
45
- },
46
- async unmount() {
47
- app == null ? void 0 : app.unmount();
48
- app = null;
16
+ } = {}) => {
17
+ return defineClientRender(
18
+ async (component, data, { recovering, container }) => {
19
+ if (!component) {
20
+ throw new TypeError(`Missing component.`);
21
+ }
22
+ if (!container) {
23
+ throw new Error(`Missing container.`);
49
24
  }
50
- };
51
- });
25
+ let app;
26
+ const context = { data, recovering, container };
27
+ const WidgetSuspense = createWidgetSuspense(component);
28
+ return {
29
+ async mount() {
30
+ app = recovering ? createSSRApp(WidgetSuspense, data) : createApp(WidgetSuspense, data);
31
+ let error;
32
+ installErrorHandler(app, (err) => {
33
+ error = err;
34
+ });
35
+ await onCreatedApp(app, context, component, data);
36
+ app.mount(container);
37
+ if (error) {
38
+ throw error;
39
+ }
40
+ },
41
+ async unmount() {
42
+ app == null ? void 0 : app.unmount();
43
+ app = null;
44
+ }
45
+ };
46
+ }
47
+ );
52
48
  };
53
49
  var defineVueRender = createVueRender;
54
50
  var render = createVueRender();
@@ -1,28 +1,25 @@
1
1
  import * as _web_widget_helpers from '@web-widget/helpers';
2
2
  export * from '@web-widget/helpers';
3
+ import { Component } from 'vue';
3
4
  import { SSRContext } from 'vue/server-renderer';
4
- import { C as CreateVueRenderOptions } from './types-BJGyrdpU.js';
5
- export { D as DefineWebWidgetOptions, d as defineWebWidget, t as toReact } from './types-BJGyrdpU.js';
5
+ import { C as CreateVueRenderOptions } from './types-E2Dn0qru.js';
6
+ export { D as DefineWebWidgetOptions, d as defineWebWidget, t as toReact } from './types-E2Dn0qru.js';
6
7
  export { useWidgetAsyncState as useWidgetState } from '@web-widget/helpers/state';
7
- import 'vue';
8
8
  import '@web-widget/web-widget';
9
9
  import '@web-widget/react';
10
10
 
11
11
  declare module '@web-widget/schema' {
12
- interface WidgetRenderOptions {
12
+ interface ServerRenderOptions {
13
13
  vue?: {};
14
14
  }
15
- interface RouteRenderOptions {
16
- vue?: SSRContext;
17
- }
18
15
  }
19
16
 
20
17
  interface VueRenderOptions {
21
18
  vue?: SSRContext;
22
19
  }
23
- declare const createVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_helpers.RouteRenderContext<unknown, Record<string, string>>, renderOptions: _web_widget_helpers.RouteRenderOptions) => Promise<_web_widget_helpers.RouteRenderResult>;
20
+ declare const createVueRender: ({ onCreatedApp, }?: CreateVueRenderOptions) => _web_widget_helpers.ServerRender<Component, unknown, _web_widget_helpers.ServerRenderOptions, _web_widget_helpers.ServerRenderResult>;
24
21
  /**@deprecated Please use `createVueRender` instead.*/
25
- declare const defineVueRender: ({ onCreatedApp, onPrefetchData, }?: CreateVueRenderOptions) => (context: _web_widget_helpers.RouteRenderContext<unknown, Record<string, string>>, renderOptions: _web_widget_helpers.RouteRenderOptions) => Promise<_web_widget_helpers.RouteRenderResult>;
26
- declare const render: (context: _web_widget_helpers.RouteRenderContext<unknown, Record<string, string>>, renderOptions: _web_widget_helpers.RouteRenderOptions) => Promise<_web_widget_helpers.RouteRenderResult>;
22
+ declare const defineVueRender: ({ onCreatedApp, }?: CreateVueRenderOptions) => _web_widget_helpers.ServerRender<Component, unknown, _web_widget_helpers.ServerRenderOptions, _web_widget_helpers.ServerRenderResult>;
23
+ declare const render: _web_widget_helpers.ServerRender<Component, unknown, _web_widget_helpers.ServerRenderOptions, _web_widget_helpers.ServerRenderResult>;
27
24
 
28
25
  export { type VueRenderOptions, createVueRender, defineVueRender, render };
@@ -2,10 +2,10 @@ import {
2
2
  defineWebWidget,
3
3
  installErrorHandler,
4
4
  toReact
5
- } from "./chunk-PT7NYHHF.js";
5
+ } from "./chunk-DUDJYZZ6.js";
6
6
 
7
7
  // src/server.ts
8
- import { defineRender, getComponentDescriptor } from "@web-widget/helpers";
8
+ import { defineServerRender } from "@web-widget/helpers";
9
9
  import { createSSRApp, h, Suspense } from "vue";
10
10
  import {
11
11
  renderToString,
@@ -13,27 +13,26 @@ import {
13
13
  } from "vue/server-renderer";
14
14
  export * from "@web-widget/helpers";
15
15
  import { useWidgetAsyncState } from "@web-widget/helpers/state";
16
+ var createWidgetSuspense = (component) => (props) => h(Suspense, null, [h(component, props)]);
16
17
  var createVueRender = ({
17
18
  onCreatedApp = async () => {
18
- },
19
- onPrefetchData
20
- } = {}) => {
21
- if (onPrefetchData) {
22
- throw new Error(`"onPrefetchData" is not supported.`);
23
19
  }
24
- return defineRender(
25
- async (context, { progressive, vue: options } = {}) => {
20
+ } = {}) => {
21
+ return defineServerRender(
22
+ async (component, data, { progressive, vue: options } = {}) => {
26
23
  var _a;
24
+ if (!component) {
25
+ throw new TypeError(`Missing component.`);
26
+ }
27
27
  const ssrContext = Object.create(options != null ? options : null);
28
28
  let error;
29
- const componentDescriptor = getComponentDescriptor(context);
30
- const { component, props } = componentDescriptor;
31
- const WidgetSuspense = (props2) => h(Suspense, null, [h(component, props2)]);
32
- const app = createSSRApp(WidgetSuspense, props);
29
+ const context = { data, progressive };
30
+ const WidgetSuspense = createWidgetSuspense(component);
31
+ const app = createSSRApp(WidgetSuspense, data);
33
32
  installErrorHandler(app, (err) => {
34
33
  error = err;
35
34
  });
36
- await onCreatedApp(app, context, component, props);
35
+ await onCreatedApp(app, context, component, data);
37
36
  const html = progressive ? renderToWebStream(app, ssrContext) : await renderToString(app, ssrContext);
38
37
  if (ssrContext == null ? void 0 : ssrContext.teleports) {
39
38
  const file = (_a = Reflect.get(component, "__file")) != null ? _a : "unknown";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@web-widget/vue",
3
3
  "description": "Vue adapter",
4
- "version": "1.56.0",
4
+ "version": "1.57.0",
5
5
  "homepage": "https://github.com/web-widget/web-widget#readme",
6
6
  "repository": {
7
7
  "type": "git",
@@ -14,11 +14,11 @@
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
16
  "@rollup/pluginutils": "^5.1.4",
17
- "@web-widget/helpers": "1.56.0",
18
- "@web-widget/vite-plugin": "1.56.0",
19
- "@web-widget/web-widget": "1.56.0",
20
- "@web-widget/schema": "1.56.0",
21
- "@web-widget/react": "1.56.0"
17
+ "@web-widget/helpers": "1.57.0",
18
+ "@web-widget/vite-plugin": "1.57.0",
19
+ "@web-widget/web-widget": "1.57.0",
20
+ "@web-widget/schema": "1.57.0",
21
+ "@web-widget/react": "1.57.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "tsup": "^8.3.4",