@web-widget/vue2 0.1.0 → 0.2.0-beta.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.
package/dist/vite.cjs CHANGED
@@ -2,7 +2,21 @@
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
6
20
  var __export = (target, all) => {
7
21
  for (var name in all)
8
22
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -25,22 +39,22 @@ __export(vite_exports, {
25
39
  module.exports = __toCommonJS(vite_exports);
26
40
  var import_vite = require("@web-widget/vite");
27
41
  function vue2WebWidgetPlugin({
28
- provide = "@web-widget/vue2",
29
- toWebWidgets = {
30
- include: [
31
- /\b(routes|widgets).*\.vue(\?.*\.(ts|js))?$/,
32
- /(\.route|widget).*\.vue(\?.*\.(ts|js))?$/
33
- ]
34
- },
35
- toComponents = {
36
- include: ["widgets/**/*", "**/*.widget.*"],
37
- exclude: /.vue\?.*$/,
38
- includeImporter: /.*\.vue(\?.*\.(ts|js))?$/
39
- }
42
+ provide,
43
+ toWebWidgets = {},
44
+ toComponents = {}
40
45
  } = {}) {
41
46
  return (0, import_vite.webWidgetPlugin)({
42
- provide,
43
- toWebWidgets,
44
- toComponents
47
+ provide: provide != null ? provide : "@web-widget/vue2",
48
+ toWebWidgets: __spreadValues({
49
+ include: [
50
+ /\b(routes|widgets).*\.vue(\?.*\.(ts|js))?$/,
51
+ /(\.route|widget).*\.vue(\?.*\.(ts|js))?$/
52
+ ]
53
+ }, toWebWidgets),
54
+ toComponents: __spreadValues({
55
+ include: ["widgets/**/*", "**/*.widget.*"],
56
+ exclude: /.vue\?.*$/,
57
+ includeImporter: /.*\.vue(\?.*\.(ts|js))?$/
58
+ }, toComponents)
45
59
  });
46
60
  }
package/dist/vite.js CHANGED
@@ -1,23 +1,40 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+
1
18
  // src/vite.ts
2
19
  import { webWidgetPlugin } from "@web-widget/vite";
3
20
  function vue2WebWidgetPlugin({
4
- provide = "@web-widget/vue2",
5
- toWebWidgets = {
6
- include: [
7
- /\b(routes|widgets).*\.vue(\?.*\.(ts|js))?$/,
8
- /(\.route|widget).*\.vue(\?.*\.(ts|js))?$/
9
- ]
10
- },
11
- toComponents = {
12
- include: ["widgets/**/*", "**/*.widget.*"],
13
- exclude: /.vue\?.*$/,
14
- includeImporter: /.*\.vue(\?.*\.(ts|js))?$/
15
- }
21
+ provide,
22
+ toWebWidgets = {},
23
+ toComponents = {}
16
24
  } = {}) {
17
25
  return webWidgetPlugin({
18
- provide,
19
- toWebWidgets,
20
- toComponents
26
+ provide: provide != null ? provide : "@web-widget/vue2",
27
+ toWebWidgets: __spreadValues({
28
+ include: [
29
+ /\b(routes|widgets).*\.vue(\?.*\.(ts|js))?$/,
30
+ /(\.route|widget).*\.vue(\?.*\.(ts|js))?$/
31
+ ]
32
+ }, toWebWidgets),
33
+ toComponents: __spreadValues({
34
+ include: ["widgets/**/*", "**/*.widget.*"],
35
+ exclude: /.vue\?.*$/,
36
+ includeImporter: /.*\.vue(\?.*\.(ts|js))?$/
37
+ }, toComponents)
21
38
  });
22
39
  }
23
40
  export {
@@ -69,6 +69,7 @@ __export(server_exports, {
69
69
  module.exports = __toCommonJS(server_exports);
70
70
  var import_server_helpers = require("@web-widget/schema/server-helpers");
71
71
  var import_node_stream = require("stream");
72
+ var import_web = require("stream/web");
72
73
  var import_vue2 = __toESM(require("vue"), 1);
73
74
  var import_vue_server_renderer = require("vue-server-renderer");
74
75
  __reExport(server_exports, require("@web-widget/schema/server-helpers"), module.exports);
@@ -195,6 +196,7 @@ function defineWebWidget(loader, options) {
195
196
  }
196
197
 
197
198
  // src/server.ts
199
+ var __FEATURE_STREAM__ = false;
198
200
  var ESCAPE_LOOKUP = {
199
201
  ">": "\\u003e",
200
202
  "<": "\\u003c",
@@ -205,6 +207,17 @@ var ESCAPE_REGEX = /[><\u2028\u2029]/g;
205
207
  function htmlEscapeJsonString(str) {
206
208
  return str.replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]);
207
209
  }
210
+ function appendStringToReadableStream(stream, text) {
211
+ const encoder = new TextEncoder();
212
+ const uint8Array = encoder.encode(text);
213
+ return stream.pipeThrough(
214
+ new import_web.TransformStream({
215
+ flush(controller) {
216
+ controller.enqueue(uint8Array);
217
+ }
218
+ })
219
+ );
220
+ }
208
221
  var defineVueRender = ({
209
222
  onBeforeCreateApp = () => ({}),
210
223
  onCreatedApp = () => {
@@ -214,39 +227,27 @@ var defineVueRender = ({
214
227
  return (0, import_server_helpers.defineRender)(async (context, component, props) => {
215
228
  const shellTag = "web-widget.shell";
216
229
  const state = onPrefetchData ? await onPrefetchData(context, component, props) : void 0;
217
- const mergedProps = state ? Object.assign(state, props) : props;
230
+ const mergedProps = state ? Object.assign({}, state, props) : props;
218
231
  const renderer = (0, import_vue_server_renderer.createRenderer)();
219
- const vNodeData = {
220
- attrs: {
221
- "data-vue2root": "true"
222
- },
223
- props: mergedProps
224
- };
225
- const shellTagVNodeData = {};
226
- let render2;
227
- if (state) {
228
- const stateStringify = htmlEscapeJsonString(JSON.stringify(state));
229
- render2 = (h2) => h2(shellTag, shellTagVNodeData, [
230
- h2(component, vNodeData),
231
- h2(
232
- "script",
233
- {
234
- attrs: {
235
- as: "state",
236
- type: "application/json"
237
- }
238
- },
239
- stateStringify
240
- )
241
- ]);
242
- } else {
243
- render2 = (h2) => h2(shellTag, shellTagVNodeData, [h2(component, vNodeData)]);
244
- }
245
232
  const app = new import_vue2.default(__spreadValues({
246
- render: render2
233
+ render: (h2) => h2(shellTag, {}, [
234
+ h2(component, {
235
+ attrs: {
236
+ "data-vue2root": "true"
237
+ },
238
+ props: mergedProps
239
+ })
240
+ ])
247
241
  }, onBeforeCreateApp(context, component, mergedProps)));
248
242
  onCreatedApp(app, context, component, mergedProps);
249
- return import_node_stream.Readable.toWeb ? import_node_stream.Readable.toWeb(renderer.renderToStream(app)) : renderer.renderToString(app);
243
+ const result = __FEATURE_STREAM__ && import_node_stream.Readable.toWeb ? import_node_stream.Readable.toWeb(renderer.renderToStream(app)) : await renderer.renderToString(app);
244
+ if (state) {
245
+ const json = htmlEscapeJsonString(JSON.stringify(state));
246
+ const script = `<script as="state" type="application/json">${json}</script>`;
247
+ return typeof result === "string" ? result + script : appendStringToReadableStream(result, script);
248
+ } else {
249
+ return result;
250
+ }
250
251
  });
251
252
  };
252
253
  var render = defineVueRender();
@@ -33,6 +33,7 @@ var __objRest = (source, exclude) => {
33
33
  // src/server.ts
34
34
  import { defineRender } from "@web-widget/schema/server-helpers";
35
35
  import { Readable } from "stream";
36
+ import { TransformStream } from "stream/web";
36
37
  import Vue from "vue";
37
38
  import { createRenderer } from "vue-server-renderer";
38
39
  export * from "@web-widget/schema/server-helpers";
@@ -159,6 +160,7 @@ function defineWebWidget(loader, options) {
159
160
  }
160
161
 
161
162
  // src/server.ts
163
+ var __FEATURE_STREAM__ = false;
162
164
  var ESCAPE_LOOKUP = {
163
165
  ">": "\\u003e",
164
166
  "<": "\\u003c",
@@ -169,6 +171,17 @@ var ESCAPE_REGEX = /[><\u2028\u2029]/g;
169
171
  function htmlEscapeJsonString(str) {
170
172
  return str.replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]);
171
173
  }
174
+ function appendStringToReadableStream(stream, text) {
175
+ const encoder = new TextEncoder();
176
+ const uint8Array = encoder.encode(text);
177
+ return stream.pipeThrough(
178
+ new TransformStream({
179
+ flush(controller) {
180
+ controller.enqueue(uint8Array);
181
+ }
182
+ })
183
+ );
184
+ }
172
185
  var defineVueRender = ({
173
186
  onBeforeCreateApp = () => ({}),
174
187
  onCreatedApp = () => {
@@ -178,39 +191,27 @@ var defineVueRender = ({
178
191
  return defineRender(async (context, component, props) => {
179
192
  const shellTag = "web-widget.shell";
180
193
  const state = onPrefetchData ? await onPrefetchData(context, component, props) : void 0;
181
- const mergedProps = state ? Object.assign(state, props) : props;
194
+ const mergedProps = state ? Object.assign({}, state, props) : props;
182
195
  const renderer = createRenderer();
183
- const vNodeData = {
184
- attrs: {
185
- "data-vue2root": "true"
186
- },
187
- props: mergedProps
188
- };
189
- const shellTagVNodeData = {};
190
- let render2;
191
- if (state) {
192
- const stateStringify = htmlEscapeJsonString(JSON.stringify(state));
193
- render2 = (h2) => h2(shellTag, shellTagVNodeData, [
194
- h2(component, vNodeData),
195
- h2(
196
- "script",
197
- {
198
- attrs: {
199
- as: "state",
200
- type: "application/json"
201
- }
202
- },
203
- stateStringify
204
- )
205
- ]);
206
- } else {
207
- render2 = (h2) => h2(shellTag, shellTagVNodeData, [h2(component, vNodeData)]);
208
- }
209
196
  const app = new Vue(__spreadValues({
210
- render: render2
197
+ render: (h2) => h2(shellTag, {}, [
198
+ h2(component, {
199
+ attrs: {
200
+ "data-vue2root": "true"
201
+ },
202
+ props: mergedProps
203
+ })
204
+ ])
211
205
  }, onBeforeCreateApp(context, component, mergedProps)));
212
206
  onCreatedApp(app, context, component, mergedProps);
213
- return Readable.toWeb ? Readable.toWeb(renderer.renderToStream(app)) : renderer.renderToString(app);
207
+ const result = __FEATURE_STREAM__ && Readable.toWeb ? Readable.toWeb(renderer.renderToStream(app)) : await renderer.renderToString(app);
208
+ if (state) {
209
+ const json = htmlEscapeJsonString(JSON.stringify(state));
210
+ const script = `<script as="state" type="application/json">${json}</script>`;
211
+ return typeof result === "string" ? result + script : appendStringToReadableStream(result, script);
212
+ } else {
213
+ return result;
214
+ }
214
215
  });
215
216
  };
216
217
  var render = defineVueRender();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@web-widget/vue2",
3
- "version": "0.1.0",
3
+ "version": "0.2.0-beta.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -24,9 +24,9 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@web-widget/vite": "1.1.0",
27
+ "@web-widget/vite": "1.1.2",
28
28
  "@web-widget/schema": "0.0.10",
29
- "@web-widget/web-widget": "1.0.0-alpha.10",
29
+ "@web-widget/web-widget": "1.0.0-alpha.11",
30
30
  "vue": "^2.7.14",
31
31
  "vue-server-renderer": "^2.7.14"
32
32
  },