@web-widget/vue 0.9.0 → 0.10.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/vue.client.d.ts +1 -0
- package/dist/vue.client.js +17 -12
- package/dist/vue.server.d.ts +1 -0
- package/dist/vue.server.js +14 -32
- package/package.json +5 -5
package/dist/vue.client.d.ts
CHANGED
|
@@ -157,6 +157,7 @@ type JSONProps = {
|
|
|
157
157
|
};
|
|
158
158
|
interface CreateVueRenderOptions {
|
|
159
159
|
onCreatedApp?: (app: App<Element>, context: RenderContext, component: Component, props: ComponentProps) => Promise<void>;
|
|
160
|
+
/**@deprecated*/
|
|
160
161
|
onPrefetchData?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<JSONProps>;
|
|
161
162
|
}
|
|
162
163
|
|
package/dist/vue.client.js
CHANGED
|
@@ -35,11 +35,16 @@ import {
|
|
|
35
35
|
defineRender,
|
|
36
36
|
getComponentDescriptor
|
|
37
37
|
} from "@web-widget/schema/client-helpers";
|
|
38
|
-
import { createApp, createSSRApp } from "vue";
|
|
38
|
+
import { Suspense as Suspense2, createApp, createSSRApp, h as h2 } from "vue";
|
|
39
39
|
|
|
40
40
|
// src/web-widget.ts
|
|
41
41
|
import { parse } from "@web-widget/web-widget";
|
|
42
|
-
import {
|
|
42
|
+
import {
|
|
43
|
+
h,
|
|
44
|
+
defineComponent,
|
|
45
|
+
Suspense,
|
|
46
|
+
useAttrs
|
|
47
|
+
} from "vue";
|
|
43
48
|
var __ENV__ = {
|
|
44
49
|
server: true
|
|
45
50
|
};
|
|
@@ -165,6 +170,9 @@ var createVueRender = ({
|
|
|
165
170
|
},
|
|
166
171
|
onPrefetchData
|
|
167
172
|
} = {}) => {
|
|
173
|
+
if (onPrefetchData) {
|
|
174
|
+
throw new Error(`"onPrefetchData" is not supported.`);
|
|
175
|
+
}
|
|
168
176
|
return defineRender(async (context) => {
|
|
169
177
|
const componentDescriptor = getComponentDescriptor(context);
|
|
170
178
|
const { component, props } = componentDescriptor;
|
|
@@ -172,21 +180,18 @@ var createVueRender = ({
|
|
|
172
180
|
throw new Error(`Container required.`);
|
|
173
181
|
}
|
|
174
182
|
let app;
|
|
183
|
+
const WrapSuspense = (props2) => h2(Suspense2, null, [h2(component, props2)]);
|
|
175
184
|
return {
|
|
176
185
|
async mount() {
|
|
177
|
-
const state = context.recovering ? context.container.querySelector(
|
|
178
|
-
"script[as=state]"
|
|
179
|
-
) : null;
|
|
180
|
-
const stateContent = context.recovering && state ? JSON.parse(state.textContent) : onPrefetchData ? await onPrefetchData(context, component, props) : void 0;
|
|
181
|
-
state == null ? void 0 : state.remove();
|
|
182
|
-
const mergedProps = stateContent ? Object.assign(stateContent, props) : props;
|
|
183
186
|
if (context.recovering) {
|
|
184
|
-
app = createSSRApp(
|
|
187
|
+
app = createSSRApp(WrapSuspense, props);
|
|
185
188
|
} else {
|
|
186
|
-
app = createApp(
|
|
189
|
+
app = createApp(WrapSuspense, props);
|
|
187
190
|
}
|
|
188
|
-
await onCreatedApp(app, context, component,
|
|
189
|
-
app.
|
|
191
|
+
await onCreatedApp(app, context, component, props);
|
|
192
|
+
app.runWithContext(() => {
|
|
193
|
+
app.mount(context.container);
|
|
194
|
+
});
|
|
190
195
|
},
|
|
191
196
|
async unmount() {
|
|
192
197
|
app == null ? void 0 : app.unmount();
|
package/dist/vue.server.d.ts
CHANGED
|
@@ -158,6 +158,7 @@ type JSONProps = {
|
|
|
158
158
|
};
|
|
159
159
|
interface CreateVueRenderOptions {
|
|
160
160
|
onCreatedApp?: (app: App<Element>, context: RenderContext, component: Component, props: ComponentProps) => Promise<void>;
|
|
161
|
+
/**@deprecated*/
|
|
161
162
|
onPrefetchData?: (context: RenderContext, component: Component, props: ComponentProps) => Promise<JSONProps>;
|
|
162
163
|
}
|
|
163
164
|
|
package/dist/vue.server.js
CHANGED
|
@@ -35,12 +35,17 @@ import {
|
|
|
35
35
|
defineRender,
|
|
36
36
|
getComponentDescriptor
|
|
37
37
|
} from "@web-widget/schema/server-helpers";
|
|
38
|
-
import {
|
|
38
|
+
import { Suspense as Suspense2, createSSRApp, h as h2 } from "vue";
|
|
39
39
|
import { renderToWebStream } from "vue/server-renderer";
|
|
40
40
|
|
|
41
41
|
// src/web-widget.ts
|
|
42
42
|
import { parse } from "@web-widget/web-widget";
|
|
43
|
-
import {
|
|
43
|
+
import {
|
|
44
|
+
h,
|
|
45
|
+
defineComponent,
|
|
46
|
+
Suspense,
|
|
47
|
+
useAttrs
|
|
48
|
+
} from "vue";
|
|
44
49
|
var __ENV__ = {
|
|
45
50
|
server: true
|
|
46
51
|
};
|
|
@@ -161,45 +166,22 @@ export * from "@web-widget/schema/server-helpers";
|
|
|
161
166
|
Reflect.defineProperty(__ENV__, "server", {
|
|
162
167
|
value: true
|
|
163
168
|
});
|
|
164
|
-
var ESCAPE_LOOKUP = {
|
|
165
|
-
">": "\\u003e",
|
|
166
|
-
"<": "\\u003c",
|
|
167
|
-
"\u2028": "\\u2028",
|
|
168
|
-
"\u2029": "\\u2029"
|
|
169
|
-
};
|
|
170
|
-
var ESCAPE_REGEX = /[><\u2028\u2029]/g;
|
|
171
|
-
function htmlEscapeJsonString(str) {
|
|
172
|
-
return str.replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]);
|
|
173
|
-
}
|
|
174
169
|
var createVueRender = ({
|
|
175
170
|
onCreatedApp = async () => {
|
|
176
171
|
},
|
|
177
172
|
onPrefetchData
|
|
178
173
|
} = {}) => {
|
|
174
|
+
if (onPrefetchData) {
|
|
175
|
+
throw new Error(`"onPrefetchData" is not supported.`);
|
|
176
|
+
}
|
|
179
177
|
return defineRender(
|
|
180
178
|
async (context, { vue: ssrContext } = {}) => {
|
|
181
179
|
const componentDescriptor = getComponentDescriptor(context);
|
|
182
180
|
const { component, props } = componentDescriptor;
|
|
183
|
-
const
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
const vNode = h2(Fragment, null, [
|
|
188
|
-
h2(component, mergedProps),
|
|
189
|
-
h2("script", {
|
|
190
|
-
as: "state",
|
|
191
|
-
type: "application/json",
|
|
192
|
-
innerHTML: stateStringify
|
|
193
|
-
})
|
|
194
|
-
]);
|
|
195
|
-
const app = createSSRApp(vNode);
|
|
196
|
-
await onCreatedApp(app, context, component, mergedProps);
|
|
197
|
-
return renderToWebStream(app, ssrContext);
|
|
198
|
-
} else {
|
|
199
|
-
const app = createSSRApp(component, mergedProps);
|
|
200
|
-
await onCreatedApp(app, context, component, mergedProps);
|
|
201
|
-
return renderToWebStream(app, ssrContext);
|
|
202
|
-
}
|
|
181
|
+
const WrapSuspense = (props2) => h2(Suspense2, null, [h2(component, props2)]);
|
|
182
|
+
const app = createSSRApp(WrapSuspense, props);
|
|
183
|
+
await onCreatedApp(app, context, component, props);
|
|
184
|
+
return app.runWithContext(() => renderToWebStream(app, ssrContext));
|
|
203
185
|
}
|
|
204
186
|
);
|
|
205
187
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@web-widget/vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"dist"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@web-widget/vite": "2.
|
|
31
|
-
"@web-widget/html": "0.1.
|
|
32
|
-
"@web-widget/schema": "0.
|
|
33
|
-
"@web-widget/web-widget": "1.
|
|
30
|
+
"@web-widget/vite": "2.7.0",
|
|
31
|
+
"@web-widget/html": "0.1.5",
|
|
32
|
+
"@web-widget/schema": "0.4.0",
|
|
33
|
+
"@web-widget/web-widget": "1.5.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"tsup": "^7.0.0",
|