vike 0.4.178-commit-fae90a1 → 0.4.179
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/cjs/node/runtime/html/injectAssets/inferHtmlTags.js +1 -0
- package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +2 -2
- package/dist/cjs/node/runtime/html/injectAssets.js +1 -1
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +1 -0
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/esm/client/shared/removeFoucBuster.js +10 -5
- package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.js +1 -0
- package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.d.ts +1 -1
- package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +2 -2
- package/dist/esm/node/runtime/html/injectAssets.js +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +1 -0
- package/dist/esm/utils/projectInfo.d.ts +2 -2
- package/dist/esm/utils/projectInfo.js +1 -1
- package/package.json +3 -3
|
@@ -28,6 +28,7 @@ function inferAssetTag(pageAsset) {
|
|
|
28
28
|
return `<script src="${src}" ${scriptAttrs}></script>`;
|
|
29
29
|
}
|
|
30
30
|
if (assetType === 'style') {
|
|
31
|
+
// WARNING: if changing following line, then also update https://github.com/vikejs/vike/blob/fae90a15d88e5e87ca9fcbb54cf2dc8773d2f229/vike/client/shared/removeFoucBuster.ts#L29
|
|
31
32
|
return `<link rel="stylesheet" type="text/css" href="${src}">`;
|
|
32
33
|
}
|
|
33
34
|
(0, utils_js_1.assert)(false, { pageAsset });
|
|
@@ -11,12 +11,12 @@ function injectHtmlTags(htmlString, htmlTags, position) {
|
|
|
11
11
|
return htmlString;
|
|
12
12
|
}
|
|
13
13
|
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
17
|
(0, utils_js_1.assert)(streamFromReactStreamingPackage);
|
|
18
18
|
(0, utils_js_1.assert)(!streamFromReactStreamingPackage.hasStreamEnded());
|
|
19
|
-
|
|
19
|
+
streamFromReactStreamingPackage.injectToStream(htmlFragment, { flush: true });
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
exports.injectHtmlTagsUsingStream = injectHtmlTagsUsingStream;
|
|
@@ -29,7 +29,7 @@ function injectHtmlTagsToStream(pageContext, streamFromReactStreamingPackage, in
|
|
|
29
29
|
htmlTags = (0, getHtmlTags_js_1.getHtmlTags)(pageContext, streamFromReactStreamingPackage, injectFilter, pageAssets, viteDevScript);
|
|
30
30
|
let htmlBegin = htmlPartsToString(htmlPartsBegin, pageAssets);
|
|
31
31
|
htmlBegin = injectToHtmlBegin(htmlBegin, htmlTags);
|
|
32
|
-
|
|
32
|
+
(0, injectHtmlTags_js_1.injectHtmlTagsUsingStream)(htmlTags, streamFromReactStreamingPackage);
|
|
33
33
|
return htmlBegin;
|
|
34
34
|
}
|
|
35
35
|
async function injectAtStreamEnd(htmlPartsEnd) {
|
|
@@ -35,6 +35,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
37
|
// https://github.com/vikejs/vike/issues/401
|
|
38
|
+
// WARNING: if changing following line, then also update https://github.com/vikejs/vike/blob/fae90a15d88e5e87ca9fcbb54cf2dc8773d2f229/vike/client/shared/removeFoucBuster.ts#L28
|
|
38
39
|
src = src + '?direct';
|
|
39
40
|
}
|
|
40
41
|
const isEntry = clientEntriesSrc.includes(src) ||
|
|
@@ -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.
|
|
4
|
+
const PROJECT_VERSION = '0.4.179';
|
|
5
5
|
exports.PROJECT_VERSION = PROJECT_VERSION;
|
|
6
6
|
const projectInfo = {
|
|
7
7
|
projectName: 'Vike',
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
export { removeFoucBuster };
|
|
2
2
|
import { assert } from './utils.js';
|
|
3
|
+
// See also:
|
|
4
|
+
// - Alternative approach of exactly injecting what Vite injects:
|
|
5
|
+
// - https://github.com/remix-run/remix/issues/8830#issuecomment-1968368351
|
|
6
|
+
// - https://github.com/rakkasjs/rakkasjs/blob/7d75ccc915e93bca04e6bab37dc6abdb68a85e4a/packages/rakkasjs/src/features/pages/middleware.tsx#L701
|
|
7
|
+
// - https://github.com/remix-run/remix/issues/8830
|
|
3
8
|
function removeFoucBuster() {
|
|
4
9
|
assert(import.meta.env.DEV);
|
|
5
10
|
let sleep = 2;
|
|
6
11
|
const runClean = () => {
|
|
7
|
-
if (sleep < 1000)
|
|
8
|
-
sleep = 2 * sleep;
|
|
9
12
|
const isClean = clean();
|
|
10
13
|
if (!isClean) {
|
|
14
|
+
if (sleep < 1000)
|
|
15
|
+
sleep = 2 * sleep;
|
|
11
16
|
setTimeout(runClean, sleep);
|
|
12
17
|
}
|
|
13
18
|
};
|
|
@@ -21,10 +26,10 @@ function clean() {
|
|
|
21
26
|
// <link rel="stylesheet" type="text/css" href="/renderer/Layout.css?direct">
|
|
22
27
|
// ```
|
|
23
28
|
const suffix = '?direct';
|
|
29
|
+
// <link> defined by:
|
|
30
|
+
// - https://github.com/vikejs/vike/blob/fae90a15d88e5e87ca9fcbb54cf2dc8773d2f229/vike/node/runtime/html/injectAssets/inferHtmlTags.ts#L35
|
|
31
|
+
// - https://github.com/vikejs/vike/blob/fae90a15d88e5e87ca9fcbb54cf2dc8773d2f229/vike/node/runtime/renderPage/getPageAssets.ts#L68
|
|
24
32
|
const injectedByVike = [...document.querySelectorAll(`link[rel="stylesheet"][type="text/css"][href$="${suffix}"]`)];
|
|
25
|
-
if (injectedByVike.length === 0) {
|
|
26
|
-
// clearInterval(interval)
|
|
27
|
-
}
|
|
28
33
|
let isClean = true;
|
|
29
34
|
injectedByVike.forEach((link) => {
|
|
30
35
|
const filePathAbsoluteUserRootDir = link.getAttribute('href').slice(0, -suffix.length);
|
|
@@ -27,6 +27,7 @@ function inferAssetTag(pageAsset) {
|
|
|
27
27
|
return `<script src="${src}" ${scriptAttrs}></script>`;
|
|
28
28
|
}
|
|
29
29
|
if (assetType === 'style') {
|
|
30
|
+
// WARNING: if changing following line, then also update https://github.com/vikejs/vike/blob/fae90a15d88e5e87ca9fcbb54cf2dc8773d2f229/vike/client/shared/removeFoucBuster.ts#L29
|
|
30
31
|
return `<link rel="stylesheet" type="text/css" href="${src}">`;
|
|
31
32
|
}
|
|
32
33
|
assert(false, { pageAsset });
|
|
@@ -7,7 +7,7 @@ import type { StreamFromReactStreamingPackage } from '../stream/react-streaming.
|
|
|
7
7
|
import type { HtmlTag } from './getHtmlTags.js';
|
|
8
8
|
type Position = 'HTML_BEGIN' | 'HTML_END';
|
|
9
9
|
declare function injectHtmlTags(htmlString: string, htmlTags: HtmlTag[], position: Position): string;
|
|
10
|
-
declare function injectHtmlTagsUsingStream(htmlTags: HtmlTag[], streamFromReactStreamingPackage: null | StreamFromReactStreamingPackage):
|
|
10
|
+
declare function injectHtmlTagsUsingStream(htmlTags: HtmlTag[], streamFromReactStreamingPackage: null | StreamFromReactStreamingPackage): void;
|
|
11
11
|
declare function injectAtOpeningTag(tag: 'head' | 'html' | '!doctype', htmlString: string, htmlFragment: string): string;
|
|
12
12
|
declare function injectAtClosingTag(tag: 'body' | 'html', htmlString: string, htmlFragment: string): string;
|
|
13
13
|
declare function createHtmlHeadIfMissing(htmlString: string): string;
|
|
@@ -13,12 +13,12 @@ function injectHtmlTags(htmlString, htmlTags, position) {
|
|
|
13
13
|
}
|
|
14
14
|
return htmlString;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
function injectHtmlTagsUsingStream(htmlTags, streamFromReactStreamingPackage) {
|
|
17
17
|
const htmlFragment = joinHtmlTags(htmlTags.filter((h) => h.position === 'STREAM'));
|
|
18
18
|
if (htmlFragment) {
|
|
19
19
|
assert(streamFromReactStreamingPackage);
|
|
20
20
|
assert(!streamFromReactStreamingPackage.hasStreamEnded());
|
|
21
|
-
|
|
21
|
+
streamFromReactStreamingPackage.injectToStream(htmlFragment, { flush: true });
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
function joinHtmlTags(htmlTags) {
|
|
@@ -27,7 +27,7 @@ function injectHtmlTagsToStream(pageContext, streamFromReactStreamingPackage, in
|
|
|
27
27
|
htmlTags = getHtmlTags(pageContext, streamFromReactStreamingPackage, injectFilter, pageAssets, viteDevScript);
|
|
28
28
|
let htmlBegin = htmlPartsToString(htmlPartsBegin, pageAssets);
|
|
29
29
|
htmlBegin = injectToHtmlBegin(htmlBegin, htmlTags);
|
|
30
|
-
|
|
30
|
+
injectHtmlTagsUsingStream(htmlTags, streamFromReactStreamingPackage);
|
|
31
31
|
return htmlBegin;
|
|
32
32
|
}
|
|
33
33
|
async function injectAtStreamEnd(htmlPartsEnd) {
|
|
@@ -34,6 +34,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
36
|
// https://github.com/vikejs/vike/issues/401
|
|
37
|
+
// WARNING: if changing following line, then also update https://github.com/vikejs/vike/blob/fae90a15d88e5e87ca9fcbb54cf2dc8773d2f229/vike/client/shared/removeFoucBuster.ts#L28
|
|
37
38
|
src = src + '?direct';
|
|
38
39
|
}
|
|
39
40
|
const isEntry = clientEntriesSrc.includes(src) ||
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { projectInfo };
|
|
2
2
|
export { PROJECT_VERSION };
|
|
3
|
-
declare const PROJECT_VERSION: "0.4.
|
|
3
|
+
declare const PROJECT_VERSION: "0.4.179";
|
|
4
4
|
declare const projectInfo: {
|
|
5
5
|
projectName: "Vike";
|
|
6
|
-
projectVersion: "0.4.
|
|
6
|
+
projectVersion: "0.4.179";
|
|
7
7
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vike",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.179",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "tsc --watch",
|
|
6
6
|
"build": "rimraf dist/ && pnpm run build:esm && pnpm run build:cjs",
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
}
|
|
139
139
|
},
|
|
140
140
|
"peerDependencies": {
|
|
141
|
-
"react-streaming": ">=0.3.
|
|
141
|
+
"react-streaming": ">=0.3.41",
|
|
142
142
|
"vite": ">=4.4.0"
|
|
143
143
|
},
|
|
144
144
|
"peerDependenciesMeta": {
|
|
@@ -209,7 +209,7 @@
|
|
|
209
209
|
"es-module-lexer": "^1.4.1",
|
|
210
210
|
"esbuild": "^0.19.10",
|
|
211
211
|
"fast-glob": "^3.3.2",
|
|
212
|
-
"react-streaming": "^0.3.
|
|
212
|
+
"react-streaming": "^0.3.41",
|
|
213
213
|
"rimraf": "^5.0.5",
|
|
214
214
|
"sirv": "^2.0.4",
|
|
215
215
|
"source-map-support": "^0.5.21",
|