vike 0.4.179-commit-fd426a3 → 0.4.179-commit-9822036

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.
@@ -14,7 +14,6 @@ exports.injectHtmlTags = injectHtmlTags;
14
14
  function injectHtmlTagsUsingStream(htmlTags, streamFromReactStreamingPackage) {
15
15
  const htmlFragment = joinHtmlTags(htmlTags.filter((h) => h.position === 'STREAM'));
16
16
  if (htmlFragment) {
17
- (0, utils_js_1.assert)(streamFromReactStreamingPackage);
18
17
  (0, utils_js_1.assert)(!streamFromReactStreamingPackage.hasStreamEnded());
19
18
  streamFromReactStreamingPackage.injectToStream(htmlFragment, { flush: true });
20
19
  }
@@ -30,12 +30,20 @@ function injectHtmlTagsToStream(pageContext, streamFromReactStreamingPackage, in
30
30
  htmlTags = (0, getHtmlTags_js_1.getHtmlTags)(pageContext, streamFromReactStreamingPackage, injectFilter, pageAssets, viteDevScript, true);
31
31
  let htmlBegin = htmlPartsToString(htmlPartsBegin, pageAssets);
32
32
  htmlBegin = injectToHtmlBegin(htmlBegin, htmlTags);
33
- (0, injectHtmlTags_js_1.injectHtmlTagsUsingStream)(htmlTags, streamFromReactStreamingPackage);
33
+ if (streamFromReactStreamingPackage) {
34
+ (0, injectHtmlTags_js_1.injectHtmlTagsUsingStream)(htmlTags, streamFromReactStreamingPackage);
35
+ }
34
36
  return htmlBegin;
35
37
  }
36
38
  function injectAtStreamAfterFirstChunk() {
39
+ // React has its own stream injection mechanism, see injectHtmlTagsUsingStream()
40
+ if (streamFromReactStreamingPackage)
41
+ return null;
37
42
  (0, utils_js_1.assert)(htmlTags);
38
- const htmlFragment = (0, injectHtmlTags_js_1.joinHtmlTags)(htmlTags.filter((h) => h.position === 'STREAM'));
43
+ const tags = htmlTags.filter((h) => h.position === 'STREAM');
44
+ if (tags.length === 0)
45
+ return null;
46
+ const htmlFragment = (0, injectHtmlTags_js_1.joinHtmlTags)(tags);
39
47
  return htmlFragment;
40
48
  }
41
49
  async function injectAtStreamEnd(htmlPartsEnd) {
@@ -55,7 +55,7 @@ async function renderDocumentHtml(documentHtml, pageContext, onErrorWhileStreami
55
55
  }
56
56
  exports.renderDocumentHtml = renderDocumentHtml;
57
57
  async function renderHtmlStream(streamOriginal, injectString, pageContext, onErrorWhileStreaming, injectFilter) {
58
- const opts = {
58
+ const processStreamOptions = {
59
59
  onErrorWhileStreaming,
60
60
  enableEagerStreaming: pageContext.enableEagerStreaming
61
61
  };
@@ -65,25 +65,17 @@ async function renderHtmlStream(streamOriginal, injectString, pageContext, onErr
65
65
  streamFromReactStreamingPackage = streamOriginal;
66
66
  }
67
67
  const { injectAtStreamBegin, injectAtStreamAfterFirstChunk, injectAtStreamEnd } = (0, injectAssets_js_1.injectHtmlTagsToStream)(pageContext, streamFromReactStreamingPackage, injectFilter);
68
- (0, utils_js_1.objectAssign)(opts, {
69
- injectStringAtBegin: async () => {
70
- return await injectAtStreamBegin(injectString.htmlPartsBegin);
71
- },
72
- injectStringAtEnd: async () => {
73
- return await injectAtStreamEnd(injectString.htmlPartsEnd);
74
- }
75
- });
76
- if (
77
- // React needs its own chunk stream injection mechanism
78
- !react_streaming_js_1.isStreamFromReactStreamingPackage) {
79
- (0, utils_js_1.objectAssign)(opts, {
80
- injectStringAfterFirstChunk: () => {
81
- return injectAtStreamAfterFirstChunk();
82
- }
83
- });
84
- }
68
+ processStreamOptions.injectStringAtBegin = async () => {
69
+ return await injectAtStreamBegin(injectString.htmlPartsBegin);
70
+ };
71
+ processStreamOptions.injectStringAtEnd = async () => {
72
+ return await injectAtStreamEnd(injectString.htmlPartsEnd);
73
+ };
74
+ processStreamOptions.injectStringAfterFirstChunk = () => {
75
+ return injectAtStreamAfterFirstChunk();
76
+ };
85
77
  }
86
- const streamWrapper = await (0, stream_js_1.processStream)(streamOriginal, opts);
78
+ const streamWrapper = await (0, stream_js_1.processStream)(streamOriginal, processStreamOptions);
87
79
  return streamWrapper;
88
80
  }
89
81
  function isTemplateWrapped(something) {
@@ -257,7 +257,8 @@ async function processStream(streamOriginal, { injectStringAtBegin, injectString
257
257
  writeStream(chunk);
258
258
  if (injectStringAfterFirstChunk && !injectStringAfterFirstChunk_done) {
259
259
  const injectedChunk = injectStringAfterFirstChunk();
260
- writeStream(injectedChunk);
260
+ if (injectedChunk !== null)
261
+ writeStream(injectedChunk);
261
262
  injectStringAfterFirstChunk_done = true;
262
263
  }
263
264
  });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = exports.projectInfo = void 0;
4
- const PROJECT_VERSION = '0.4.179-commit-fd426a3';
4
+ const PROJECT_VERSION = '0.4.179-commit-9822036';
5
5
  exports.PROJECT_VERSION = PROJECT_VERSION;
6
6
  const projectInfo = {
7
7
  projectName: 'Vike',
@@ -8,7 +8,7 @@ import type { StreamFromReactStreamingPackage } from '../stream/react-streaming.
8
8
  import type { HtmlTag } from './getHtmlTags.js';
9
9
  type Position = 'HTML_BEGIN' | 'HTML_END';
10
10
  declare function injectHtmlTags(htmlString: string, htmlTags: HtmlTag[], position: Position): string;
11
- declare function injectHtmlTagsUsingStream(htmlTags: HtmlTag[], streamFromReactStreamingPackage: null | StreamFromReactStreamingPackage): void;
11
+ declare function injectHtmlTagsUsingStream(htmlTags: HtmlTag[], streamFromReactStreamingPackage: StreamFromReactStreamingPackage): void;
12
12
  declare function joinHtmlTags(htmlTags: HtmlTag[]): string;
13
13
  declare function injectAtOpeningTag(tag: 'head' | 'html' | '!doctype', htmlString: string, htmlFragment: string): string;
14
14
  declare function injectAtClosingTag(tag: 'body' | 'html', htmlString: string, htmlFragment: string): string;
@@ -17,7 +17,6 @@ function injectHtmlTags(htmlString, htmlTags, position) {
17
17
  function injectHtmlTagsUsingStream(htmlTags, streamFromReactStreamingPackage) {
18
18
  const htmlFragment = joinHtmlTags(htmlTags.filter((h) => h.position === 'STREAM'));
19
19
  if (htmlFragment) {
20
- assert(streamFromReactStreamingPackage);
21
20
  assert(!streamFromReactStreamingPackage.hasStreamEnded());
22
21
  streamFromReactStreamingPackage.injectToStream(htmlFragment, { flush: true });
23
22
  }
@@ -29,7 +29,7 @@ declare function injectHtmlTagsToStream(pageContext: PageContextInjectAssets & {
29
29
  _isStream: true;
30
30
  }, streamFromReactStreamingPackage: null | StreamFromReactStreamingPackage, injectFilter: PreloadFilter): {
31
31
  injectAtStreamBegin: (htmlPartsBegin: HtmlPart[]) => Promise<string>;
32
- injectAtStreamAfterFirstChunk: () => string;
32
+ injectAtStreamAfterFirstChunk: () => null | string;
33
33
  injectAtStreamEnd: (htmlPartsEnd: HtmlPart[]) => Promise<string>;
34
34
  };
35
35
  type PageContextPromise = null | Promise<unknown> | (() => void | Promise<unknown>);
@@ -28,12 +28,20 @@ function injectHtmlTagsToStream(pageContext, streamFromReactStreamingPackage, in
28
28
  htmlTags = getHtmlTags(pageContext, streamFromReactStreamingPackage, injectFilter, pageAssets, viteDevScript, true);
29
29
  let htmlBegin = htmlPartsToString(htmlPartsBegin, pageAssets);
30
30
  htmlBegin = injectToHtmlBegin(htmlBegin, htmlTags);
31
- injectHtmlTagsUsingStream(htmlTags, streamFromReactStreamingPackage);
31
+ if (streamFromReactStreamingPackage) {
32
+ injectHtmlTagsUsingStream(htmlTags, streamFromReactStreamingPackage);
33
+ }
32
34
  return htmlBegin;
33
35
  }
34
36
  function injectAtStreamAfterFirstChunk() {
37
+ // React has its own stream injection mechanism, see injectHtmlTagsUsingStream()
38
+ if (streamFromReactStreamingPackage)
39
+ return null;
35
40
  assert(htmlTags);
36
- const htmlFragment = joinHtmlTags(htmlTags.filter((h) => h.position === 'STREAM'));
41
+ const tags = htmlTags.filter((h) => h.position === 'STREAM');
42
+ if (tags.length === 0)
43
+ return null;
44
+ const htmlFragment = joinHtmlTags(tags);
37
45
  return htmlFragment;
38
46
  }
39
47
  async function injectAtStreamEnd(htmlPartsEnd) {
@@ -52,7 +52,7 @@ async function renderDocumentHtml(documentHtml, pageContext, onErrorWhileStreami
52
52
  assert(false);
53
53
  }
54
54
  async function renderHtmlStream(streamOriginal, injectString, pageContext, onErrorWhileStreaming, injectFilter) {
55
- const opts = {
55
+ const processStreamOptions = {
56
56
  onErrorWhileStreaming,
57
57
  enableEagerStreaming: pageContext.enableEagerStreaming
58
58
  };
@@ -62,25 +62,17 @@ async function renderHtmlStream(streamOriginal, injectString, pageContext, onErr
62
62
  streamFromReactStreamingPackage = streamOriginal;
63
63
  }
64
64
  const { injectAtStreamBegin, injectAtStreamAfterFirstChunk, injectAtStreamEnd } = injectHtmlTagsToStream(pageContext, streamFromReactStreamingPackage, injectFilter);
65
- objectAssign(opts, {
66
- injectStringAtBegin: async () => {
67
- return await injectAtStreamBegin(injectString.htmlPartsBegin);
68
- },
69
- injectStringAtEnd: async () => {
70
- return await injectAtStreamEnd(injectString.htmlPartsEnd);
71
- }
72
- });
73
- if (
74
- // React needs its own chunk stream injection mechanism
75
- !isStreamFromReactStreamingPackage) {
76
- objectAssign(opts, {
77
- injectStringAfterFirstChunk: () => {
78
- return injectAtStreamAfterFirstChunk();
79
- }
80
- });
81
- }
65
+ processStreamOptions.injectStringAtBegin = async () => {
66
+ return await injectAtStreamBegin(injectString.htmlPartsBegin);
67
+ };
68
+ processStreamOptions.injectStringAtEnd = async () => {
69
+ return await injectAtStreamEnd(injectString.htmlPartsEnd);
70
+ };
71
+ processStreamOptions.injectStringAfterFirstChunk = () => {
72
+ return injectAtStreamAfterFirstChunk();
73
+ };
82
74
  }
83
- const streamWrapper = await processStream(streamOriginal, opts);
75
+ const streamWrapper = await processStream(streamOriginal, processStreamOptions);
84
76
  return streamWrapper;
85
77
  }
86
78
  function isTemplateWrapped(something) {
@@ -53,7 +53,7 @@ declare function pipeToStreamWritableWeb(htmlRender: HtmlRender, writable: Strea
53
53
  declare function pipeToStreamWritableNode(htmlRender: HtmlRender, writable: StreamWritableNode): boolean;
54
54
  declare function processStream(streamOriginal: StreamProviderAny, { injectStringAtBegin, injectStringAfterFirstChunk, injectStringAtEnd, onErrorWhileStreaming, enableEagerStreaming }: {
55
55
  injectStringAtBegin?: () => Promise<string>;
56
- injectStringAfterFirstChunk?: () => string;
56
+ injectStringAfterFirstChunk?: () => string | null;
57
57
  injectStringAtEnd?: () => Promise<string>;
58
58
  onErrorWhileStreaming: (err: unknown) => void;
59
59
  enableEagerStreaming?: boolean;
@@ -262,7 +262,8 @@ async function processStream(streamOriginal, { injectStringAtBegin, injectString
262
262
  writeStream(chunk);
263
263
  if (injectStringAfterFirstChunk && !injectStringAfterFirstChunk_done) {
264
264
  const injectedChunk = injectStringAfterFirstChunk();
265
- writeStream(injectedChunk);
265
+ if (injectedChunk !== null)
266
+ writeStream(injectedChunk);
266
267
  injectStringAfterFirstChunk_done = true;
267
268
  }
268
269
  });
@@ -1,7 +1,7 @@
1
1
  export { projectInfo };
2
2
  export { PROJECT_VERSION };
3
- declare const PROJECT_VERSION: "0.4.179-commit-fd426a3";
3
+ declare const PROJECT_VERSION: "0.4.179-commit-9822036";
4
4
  declare const projectInfo: {
5
5
  projectName: "Vike";
6
- projectVersion: "0.4.179-commit-fd426a3";
6
+ projectVersion: "0.4.179-commit-9822036";
7
7
  };
@@ -1,6 +1,6 @@
1
1
  export { projectInfo };
2
2
  export { PROJECT_VERSION };
3
- const PROJECT_VERSION = '0.4.179-commit-fd426a3';
3
+ const PROJECT_VERSION = '0.4.179-commit-9822036';
4
4
  const projectInfo = {
5
5
  projectName: 'Vike',
6
6
  projectVersion: PROJECT_VERSION
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.179-commit-fd426a3",
3
+ "version": "0.4.179-commit-9822036",
4
4
  "scripts": {
5
5
  "dev": "tsc --watch",
6
6
  "build": "rimraf dist/ && pnpm run build:esm && pnpm run build:cjs",