vike 0.4.183 → 0.4.184
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/plugin/index.js +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +3 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +1 -1
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +7 -0
- package/dist/cjs/node/plugin/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +9 -6
- package/dist/cjs/node/runtime/html/stream.js +6 -4
- package/dist/cjs/node/runtime/utils.js +2 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertNodeEnv.js +5 -4
- package/dist/cjs/utils/includes.js +14 -0
- package/dist/cjs/utils/isDev.js +8 -24
- package/dist/cjs/utils/objectEntries.js +9 -0
- package/dist/cjs/utils/objectEntriesForEach.js +8 -0
- package/dist/cjs/utils/objectFromEntries.js +8 -0
- package/dist/cjs/utils/objectKeys.js +1 -21
- package/dist/esm/node/plugin/index.js +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +4 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +2 -2
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +8 -1
- package/dist/esm/node/plugin/utils.d.ts +1 -1
- package/dist/esm/node/plugin/utils.js +1 -1
- package/dist/esm/node/runtime/globalContext.d.ts +2 -0
- package/dist/esm/node/runtime/globalContext.js +8 -5
- package/dist/esm/node/runtime/html/stream.js +6 -4
- package/dist/esm/node/runtime/utils.d.ts +2 -0
- package/dist/esm/node/runtime/utils.js +2 -0
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assertNodeEnv.d.ts +1 -1
- package/dist/esm/utils/assertNodeEnv.js +5 -4
- package/dist/esm/utils/includes.d.ts +2 -0
- package/dist/esm/utils/includes.js +10 -0
- package/dist/esm/utils/isDev.d.ts +1 -5
- package/dist/esm/utils/isDev.js +7 -23
- package/dist/esm/utils/objectEntries.d.ts +2 -0
- package/dist/esm/utils/objectEntries.js +5 -0
- package/dist/esm/utils/objectEntriesForEach.d.ts +2 -0
- package/dist/esm/utils/objectEntriesForEach.js +4 -0
- package/dist/esm/utils/objectFromEntries.d.ts +2 -0
- package/dist/esm/utils/objectFromEntries.js +4 -0
- package/dist/esm/utils/objectKeys.d.ts +1 -8
- package/dist/esm/utils/objectKeys.js +1 -22
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/package.json +2 -2
- package/dist/cjs/utils/arrayIncludes.js +0 -7
- package/dist/esm/utils/arrayIncludes.d.ts +0 -1
- package/dist/esm/utils/arrayIncludes.js +0 -3
|
@@ -74,7 +74,7 @@ Object.defineProperty(plugin, 'apply', {
|
|
|
74
74
|
(0, utils_js_2.assertUsage)(false, `Add ${picocolors_1.default.cyan('vike()')} instead of ${picocolors_1.default.cyan('vike')} to vite.config.js#plugins (i.e. call the function and add the return value instead of adding the function itself)`, { showStackTrace: true });
|
|
75
75
|
}
|
|
76
76
|
});
|
|
77
|
-
//
|
|
77
|
+
// package.json#peerDependencies isn't enough as users can ignore it
|
|
78
78
|
function assertViteVersion() {
|
|
79
|
-
(0, utils_js_2.assertVersion)('Vite', vite_1.version, '
|
|
79
|
+
(0, utils_js_2.assertVersion)('Vite', vite_1.version, '5.1.0');
|
|
80
80
|
}
|
|
@@ -18,11 +18,11 @@ const getFilePath_js_1 = require("../../shared/getFilePath.js");
|
|
|
18
18
|
function importUserCode() {
|
|
19
19
|
let config;
|
|
20
20
|
let configVike;
|
|
21
|
-
let
|
|
21
|
+
let isDev;
|
|
22
22
|
return {
|
|
23
23
|
name: 'vike:importUserCode',
|
|
24
24
|
config(_, env) {
|
|
25
|
-
|
|
25
|
+
isDev = (0, utils_js_1.isDev3)(env);
|
|
26
26
|
return {
|
|
27
27
|
experimental: {
|
|
28
28
|
// TODO/v1-release: remove
|
|
@@ -50,10 +50,10 @@ function importUserCode() {
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
async load(id, options) {
|
|
53
|
-
const isDev = isDev_ !== null ? isDev_ : (0, utils_js_1.isDev1)();
|
|
54
53
|
if (!(0, utils_js_1.isVirtualFileId)(id))
|
|
55
54
|
return undefined;
|
|
56
55
|
id = (0, utils_js_1.getVirtualFileId)(id);
|
|
56
|
+
(0, utils_js_1.assert)(typeof isDev === 'boolean');
|
|
57
57
|
if ((0, virtualFilePageConfigValuesAll_js_1.isVirtualFileIdPageConfigValuesAll)(id)) {
|
|
58
58
|
const code = await (0, getVirtualFilePageConfigValuesAll_js_1.getVirtualFilePageConfigValuesAll)(id, isDev, config);
|
|
59
59
|
return code;
|
|
@@ -64,8 +64,6 @@ function importUserCode() {
|
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
configureServer(server) {
|
|
67
|
-
if (isDev_ === null)
|
|
68
|
-
(0, utils_js_1.isDev1_onConfigureServer)();
|
|
69
67
|
handleFileAddRemove(server, config);
|
|
70
68
|
}
|
|
71
69
|
};
|
|
@@ -976,7 +976,7 @@ function isGlobalConfig(configName) {
|
|
|
976
976
|
if (configName === 'prerender')
|
|
977
977
|
return false;
|
|
978
978
|
const configNamesGlobal = getConfigNamesGlobal();
|
|
979
|
-
return (0, utils_js_1.
|
|
979
|
+
return (0, utils_js_1.includes)(configNamesGlobal, configName);
|
|
980
980
|
}
|
|
981
981
|
function getConfigNamesGlobal() {
|
|
982
982
|
return Object.keys(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltInGlobal);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.setGlobalContext = void 0;
|
|
4
4
|
const globalContext_js_1 = require("../../runtime/globalContext.js");
|
|
5
|
+
const utils_js_1 = require("../utils.js");
|
|
5
6
|
function setGlobalContext() {
|
|
6
7
|
return {
|
|
7
8
|
name: 'vike:setGlobalContext',
|
|
@@ -11,6 +12,12 @@ function setGlobalContext() {
|
|
|
11
12
|
handler(viteDevServer) {
|
|
12
13
|
(0, globalContext_js_1.setGlobalContext_viteDevServer)(viteDevServer);
|
|
13
14
|
}
|
|
15
|
+
},
|
|
16
|
+
config: {
|
|
17
|
+
handler(_, env) {
|
|
18
|
+
const isDev = (0, utils_js_1.isDev3)(env);
|
|
19
|
+
(0, globalContext_js_1.setGlobalContext_isDev)(isDev);
|
|
20
|
+
}
|
|
14
21
|
}
|
|
15
22
|
};
|
|
16
23
|
}
|
|
@@ -23,7 +23,7 @@ __exportStar(require("../runtime/utils.js"), exports);
|
|
|
23
23
|
// Utils only needed by `plugin/*`
|
|
24
24
|
__exportStar(require("../../utils/viteIsSSR.js"), exports);
|
|
25
25
|
__exportStar(require("../../utils/requireResolve.js"), exports);
|
|
26
|
-
__exportStar(require("../../utils/
|
|
26
|
+
__exportStar(require("../../utils/includes.js"), exports);
|
|
27
27
|
__exportStar(require("../../utils/isDev.js"), exports);
|
|
28
28
|
__exportStar(require("../../utils/getMostSimilar.js"), exports);
|
|
29
29
|
__exportStar(require("../../utils/getRandomId.js"), exports);
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getRuntimeManifest = exports.setGlobalContext_prerender = exports.setGlobalContext_viteDevServer = exports.getViteConfig = exports.getViteDevServer = exports.getGlobalContext = exports.initGlobalContext = exports.getGlobalContextAsync = exports.getGlobalContextSync = void 0;
|
|
6
|
+
exports.getRuntimeManifest = exports.setGlobalContext_prerender = exports.setGlobalContext_isDev = exports.setGlobalContext_viteDevServer = exports.getViteConfig = exports.getViteDevServer = exports.getGlobalContext = exports.initGlobalContext = exports.getGlobalContextAsync = exports.getGlobalContextSync = void 0;
|
|
7
7
|
const utils_js_1 = require("./utils.js");
|
|
8
8
|
const loadImportBuild_js_1 = require("./globalContext/loadImportBuild.js");
|
|
9
9
|
const getPageFiles_js_1 = require("../../shared/getPageFiles.js");
|
|
@@ -61,11 +61,14 @@ function setGlobalContext_viteDevServer(viteDevServer) {
|
|
|
61
61
|
if (globalObject.viteDevServer)
|
|
62
62
|
return;
|
|
63
63
|
(0, utils_js_1.assert)(!globalObject.globalContext);
|
|
64
|
-
(0, utils_js_1.assert)(!globalObject.globalContext);
|
|
65
64
|
globalObject.viteConfig = viteDevServer.config;
|
|
66
65
|
globalObject.viteDevServer = viteDevServer;
|
|
67
66
|
}
|
|
68
67
|
exports.setGlobalContext_viteDevServer = setGlobalContext_viteDevServer;
|
|
68
|
+
function setGlobalContext_isDev(isDev) {
|
|
69
|
+
globalObject.isDev = isDev;
|
|
70
|
+
}
|
|
71
|
+
exports.setGlobalContext_isDev = setGlobalContext_isDev;
|
|
69
72
|
function getViteDevServer() {
|
|
70
73
|
return globalObject.viteDevServer ?? null;
|
|
71
74
|
}
|
|
@@ -84,12 +87,12 @@ exports.getViteConfig = getViteConfig;
|
|
|
84
87
|
async function initGlobalContext(isPrerendering = false, outDir) {
|
|
85
88
|
if (globalObject.globalContext)
|
|
86
89
|
return;
|
|
87
|
-
const { viteDevServer, viteConfig } = globalObject;
|
|
88
|
-
(0, utils_js_1.assertNodeEnv_runtime)(
|
|
89
|
-
|
|
90
|
-
if (!isProduction) {
|
|
90
|
+
const { viteDevServer, viteConfig, isDev } = globalObject;
|
|
91
|
+
(0, utils_js_1.assertNodeEnv_runtime)(isDev ?? false);
|
|
92
|
+
if (isDev) {
|
|
91
93
|
(0, utils_js_1.assert)(viteConfig);
|
|
92
94
|
(0, utils_js_1.assert)(!isPrerendering);
|
|
95
|
+
(0, utils_js_1.assert)(viteDevServer);
|
|
93
96
|
const configVike = await (0, getConfigVike_js_1.getConfigVike)(viteConfig);
|
|
94
97
|
const pluginManifest = getRuntimeManifest(configVike);
|
|
95
98
|
globalObject.globalContext = {
|
|
@@ -43,15 +43,17 @@ async function streamReadableNodeToString(readableNode) {
|
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
async function streamReadableWebToString(readableWeb) {
|
|
46
|
-
let str = '';
|
|
47
46
|
const reader = readableWeb.getReader();
|
|
47
|
+
const decoder = new TextDecoder();
|
|
48
|
+
let str = '';
|
|
48
49
|
while (true) {
|
|
49
50
|
const { done, value } = await reader.read();
|
|
50
|
-
if (done)
|
|
51
|
+
if (done)
|
|
51
52
|
break;
|
|
52
|
-
}
|
|
53
|
-
str += value;
|
|
53
|
+
str += decoder.decode(value, { stream: true });
|
|
54
54
|
}
|
|
55
|
+
// https://github.com/vikejs/vike/pull/1799#discussion_r1713554096
|
|
56
|
+
str += decoder.decode();
|
|
55
57
|
return str;
|
|
56
58
|
}
|
|
57
59
|
exports.streamReadableWebToString = streamReadableWebToString;
|
|
@@ -55,6 +55,8 @@ __exportStar(require("../../utils/isNotNullish.js"), exports);
|
|
|
55
55
|
__exportStar(require("../../utils/isScriptFile.js"), exports);
|
|
56
56
|
__exportStar(require("../../utils/removeFileExtention.js"), exports);
|
|
57
57
|
__exportStar(require("../../utils/objectKeys.js"), exports);
|
|
58
|
+
__exportStar(require("../../utils/objectEntries.js"), exports);
|
|
59
|
+
__exportStar(require("../../utils/objectFromEntries.js"), exports);
|
|
58
60
|
__exportStar(require("../../utils/getFileExtension.js"), exports);
|
|
59
61
|
__exportStar(require("../../utils/assertIsNotProductionRuntime.js"), exports);
|
|
60
62
|
__exportStar(require("../../utils/virtual-files.js"), exports);
|
|
@@ -24,17 +24,18 @@ function assertNodeEnv_build() {
|
|
|
24
24
|
assertNodeEnvIsNotDev('building');
|
|
25
25
|
}
|
|
26
26
|
exports.assertNodeEnv_build = assertNodeEnv_build;
|
|
27
|
-
function assertNodeEnv_runtime(
|
|
27
|
+
function assertNodeEnv_runtime(isViteDev) {
|
|
28
28
|
const nodeEnv = getNodeEnv();
|
|
29
29
|
if (nodeEnv === null || nodeEnv === 'test')
|
|
30
30
|
return;
|
|
31
|
-
const
|
|
31
|
+
const isNodeDev = isNodeEnvDev();
|
|
32
32
|
// Calling Vite's createServer() is enough for hasViteDevServer to be true, even without actually adding Vite's development middleware to the server: https://github.com/vikejs/vike/issues/792#issuecomment-1516830759
|
|
33
|
-
if (
|
|
33
|
+
if (isViteDev === isNodeDev)
|
|
34
34
|
return;
|
|
35
35
|
const nodeEnvDesc = getNodeEnvDesc();
|
|
36
36
|
// TODO: make it assertUsage() again once #1528 is implemented.
|
|
37
|
-
|
|
37
|
+
const errMsg = `Running ${isViteDev ? picocolors_1.default.cyan('$ vite dev') : 'app in production'} while the ${nodeEnvDesc} which is contradictory, see https://vike.dev/NODE_ENV`;
|
|
38
|
+
(0, assert_js_1.assertWarning)(false, errMsg, { onlyOnce: true });
|
|
38
39
|
}
|
|
39
40
|
exports.assertNodeEnv_runtime = assertNodeEnv_runtime;
|
|
40
41
|
function assertNodeEnv_onVikePluginLoad() {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.includes = void 0;
|
|
4
|
+
// https://stackoverflow.com/questions/56565528/typescript-const-assertions-how-to-use-array-prototype-includes/74213179#74213179
|
|
5
|
+
/** Same as Array.prototype.includes() but with type inference */
|
|
6
|
+
function includes(values, x) {
|
|
7
|
+
return values.includes(x);
|
|
8
|
+
}
|
|
9
|
+
exports.includes = includes;
|
|
10
|
+
/*
|
|
11
|
+
export function includes<Arr extends any[] | readonly any[]>(arr: Arr, el: unknown): el is Arr[number] {
|
|
12
|
+
return arr.includes(el as any)
|
|
13
|
+
}
|
|
14
|
+
*/
|
package/dist/cjs/utils/isDev.js
CHANGED
|
@@ -1,35 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isDev3 = exports.isDev2 =
|
|
3
|
+
exports.isDev3 = exports.isDev2 = void 0;
|
|
4
|
+
const assert_js_1 = require("./assert.js");
|
|
4
5
|
function isDev3(configEnv) {
|
|
5
6
|
const { isPreview, command } = configEnv;
|
|
6
7
|
if (command !== 'serve')
|
|
7
8
|
return false;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
//
|
|
11
|
-
|
|
9
|
+
// `isPreview` is `undefined` in older Vite versions.
|
|
10
|
+
// https://github.com/vitejs/vite/pull/14855
|
|
11
|
+
// https://github.com/vitejs/vite/pull/15695O
|
|
12
|
+
// - Released at `vite@5.1.0`: https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#510-beta4-2024-01-26:~:text=fix(preview)%3A%20set%20isPreview%20true%20(%2315695)%20(93fce55)%2C%20closes%20%2315695
|
|
13
|
+
(0, assert_js_1.assert)(typeof isPreview === 'boolean');
|
|
14
|
+
return !isPreview;
|
|
12
15
|
}
|
|
13
16
|
exports.isDev3 = isDev3;
|
|
14
|
-
// ********
|
|
15
|
-
// Method 1 - reliable
|
|
16
|
-
// ********
|
|
17
|
-
const assert_js_1 = require("./assert.js");
|
|
18
|
-
const getGlobalObject_js_1 = require("./getGlobalObject.js");
|
|
19
|
-
const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('utils/isDev.ts', { isDev: false, isDev_wasCalled: false });
|
|
20
|
-
function isDev1() {
|
|
21
|
-
globalObject.isDev_wasCalled = true;
|
|
22
|
-
return globalObject.isDev;
|
|
23
|
-
}
|
|
24
|
-
exports.isDev1 = isDev1;
|
|
25
|
-
function isDev1_onConfigureServer() {
|
|
26
|
-
// configureServer() is called more than once when user presses Vite's dev server reload hotkey <r>
|
|
27
|
-
if (globalObject.isDev)
|
|
28
|
-
return;
|
|
29
|
-
(0, assert_js_1.assert)(!globalObject.isDev_wasCalled);
|
|
30
|
-
globalObject.isDev = true;
|
|
31
|
-
}
|
|
32
|
-
exports.isDev1_onConfigureServer = isDev1_onConfigureServer;
|
|
33
17
|
function isDev2(config) {
|
|
34
18
|
const isDev = config.command === 'serve' &&
|
|
35
19
|
// Mode is 'development' by default: https://github.com/vitejs/vite/blob/bf9c49f521b7a6730231c35754d5e1f9c3a6a16e/packages/vite/src/node/config.ts#L383
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.objectEntries = void 0;
|
|
4
|
+
// https://stackoverflow.com/questions/60141960/typescript-key-value-relation-preserving-object-entries-type/75337277#75337277
|
|
5
|
+
/** Same as Object.entries() but with type inference */
|
|
6
|
+
function objectEntries(obj) {
|
|
7
|
+
return Object.entries(obj);
|
|
8
|
+
}
|
|
9
|
+
exports.objectEntries = objectEntries;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.objectEntriesForEach = void 0;
|
|
4
|
+
/** Same as Object.entries().forEach() but with type inference */
|
|
5
|
+
function objectEntriesForEach(obj, iterator) {
|
|
6
|
+
Object.entries(obj).forEach(([key, val]) => iterator(key, val));
|
|
7
|
+
}
|
|
8
|
+
exports.objectEntriesForEach = objectEntriesForEach;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.objectFromEntries = void 0;
|
|
4
|
+
/** Same as Object.fromEntries() but with type inference */
|
|
5
|
+
function objectFromEntries(arr) {
|
|
6
|
+
return Object.fromEntries(arr);
|
|
7
|
+
}
|
|
8
|
+
exports.objectFromEntries = objectFromEntries;
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.objectKeys =
|
|
4
|
-
// export { forEach }
|
|
5
|
-
// https://stackoverflow.com/questions/60141960/typescript-key-value-relation-preserving-object-entries-type/75337277#75337277
|
|
6
|
-
/** Same as Object.entries() but with type inference */
|
|
7
|
-
function objectEntries(obj) {
|
|
8
|
-
return Object.entries(obj);
|
|
9
|
-
}
|
|
10
|
-
exports.objectEntries = objectEntries;
|
|
11
|
-
/** Same as Object.fromEntries() but with type inference */
|
|
12
|
-
function objectFromEntries(arr) {
|
|
13
|
-
return Object.fromEntries(arr);
|
|
14
|
-
}
|
|
15
|
-
exports.objectFromEntries = objectFromEntries;
|
|
3
|
+
exports.objectKeys = void 0;
|
|
16
4
|
// https://stackoverflow.com/questions/52856496/typescript-object-keys-return-string
|
|
17
5
|
// https://github.com/sindresorhus/ts-extras/blob/main/source/object-keys.ts
|
|
18
6
|
/** Same as Object.keys() but with type inference */
|
|
@@ -20,11 +8,3 @@ function objectKeys(obj) {
|
|
|
20
8
|
return Object.keys(obj);
|
|
21
9
|
}
|
|
22
10
|
exports.objectKeys = objectKeys;
|
|
23
|
-
/* Not used yet, but can be quite useful.
|
|
24
|
-
function forEach<Obj extends object>(
|
|
25
|
-
obj: Obj,
|
|
26
|
-
iterator: <Key extends keyof Obj>(key: Key, val: Obj[Key]) => void
|
|
27
|
-
): void {
|
|
28
|
-
Object.entries(obj).forEach(([key, val]) => iterator(key as keyof Obj, val))
|
|
29
|
-
}
|
|
30
|
-
//*/
|
|
@@ -68,7 +68,7 @@ Object.defineProperty(plugin, 'apply', {
|
|
|
68
68
|
assertUsage(false, `Add ${pc.cyan('vike()')} instead of ${pc.cyan('vike')} to vite.config.js#plugins (i.e. call the function and add the return value instead of adding the function itself)`, { showStackTrace: true });
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
|
-
//
|
|
71
|
+
// package.json#peerDependencies isn't enough as users can ignore it
|
|
72
72
|
function assertViteVersion() {
|
|
73
|
-
assertVersion('Vite', version, '
|
|
73
|
+
assertVersion('Vite', version, '5.1.0');
|
|
74
74
|
}
|
|
@@ -3,7 +3,7 @@ import { normalizePath } from 'vite';
|
|
|
3
3
|
import { getConfigVike } from '../../../shared/getConfigVike.js';
|
|
4
4
|
import { getVirtualFilePageConfigValuesAll } from './v1-design/getVirtualFilePageConfigValuesAll.js';
|
|
5
5
|
import { getVirtualFileImportUserCode } from './getVirtualFileImportUserCode.js';
|
|
6
|
-
import { assert, assertPosixPath, getOutDirs, getVirtualFileId,
|
|
6
|
+
import { assert, assertPosixPath, getOutDirs, getVirtualFileId, isDev3, isVirtualFileId, resolveVirtualFileId } from '../../utils.js';
|
|
7
7
|
import { isVirtualFileIdPageConfigValuesAll } from '../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
|
|
8
8
|
import { isVirtualFileIdImportUserCode } from '../../../shared/virtual-files/virtualFileImportUserCode.js';
|
|
9
9
|
import { vikeConfigDependencies, reloadVikeConfig, isVikeConfigFile } from './v1-design/getVikeConfig.js';
|
|
@@ -13,11 +13,11 @@ import { getModuleFilePath } from '../../shared/getFilePath.js';
|
|
|
13
13
|
function importUserCode() {
|
|
14
14
|
let config;
|
|
15
15
|
let configVike;
|
|
16
|
-
let
|
|
16
|
+
let isDev;
|
|
17
17
|
return {
|
|
18
18
|
name: 'vike:importUserCode',
|
|
19
19
|
config(_, env) {
|
|
20
|
-
|
|
20
|
+
isDev = isDev3(env);
|
|
21
21
|
return {
|
|
22
22
|
experimental: {
|
|
23
23
|
// TODO/v1-release: remove
|
|
@@ -45,10 +45,10 @@ function importUserCode() {
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
async load(id, options) {
|
|
48
|
-
const isDev = isDev_ !== null ? isDev_ : isDev1();
|
|
49
48
|
if (!isVirtualFileId(id))
|
|
50
49
|
return undefined;
|
|
51
50
|
id = getVirtualFileId(id);
|
|
51
|
+
assert(typeof isDev === 'boolean');
|
|
52
52
|
if (isVirtualFileIdPageConfigValuesAll(id)) {
|
|
53
53
|
const code = await getVirtualFilePageConfigValuesAll(id, isDev, config);
|
|
54
54
|
return code;
|
|
@@ -59,8 +59,6 @@ function importUserCode() {
|
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
configureServer(server) {
|
|
62
|
-
if (isDev_ === null)
|
|
63
|
-
isDev1_onConfigureServer();
|
|
64
62
|
handleFileAddRemove(server, config);
|
|
65
63
|
}
|
|
66
64
|
};
|
|
@@ -4,7 +4,7 @@ export { vikeConfigDependencies };
|
|
|
4
4
|
export { isVikeConfigFile };
|
|
5
5
|
export { isV1Design };
|
|
6
6
|
export { getConfigValueInterfaceFile };
|
|
7
|
-
import { assertPosixPath, assert, isObject, assertUsage, assertWarning, objectEntries, hasProp,
|
|
7
|
+
import { assertPosixPath, assert, isObject, assertUsage, assertWarning, objectEntries, hasProp, includes, assertIsNotProductionRuntime, getMostSimilar, joinEnglish, lowerFirst, getOutDirs, assertKeys, objectKeys, objectFromEntries, makeFirst, isNpmPackageImport, reverse } from '../../../utils.js';
|
|
8
8
|
import path from 'path';
|
|
9
9
|
import { configDefinitionsBuiltIn, configDefinitionsBuiltInGlobal } from './getVikeConfig/configDefinitionsBuiltIn.js';
|
|
10
10
|
import { getLocationId, getFilesystemRouteString, getFilesystemRouteDefinedBy, isInherited, sortAfterInheritanceOrder, isGlobalLocation, applyFilesystemRoutingRootEffect } from './getVikeConfig/filesystemRouting.js';
|
|
@@ -971,7 +971,7 @@ function isGlobalConfig(configName) {
|
|
|
971
971
|
if (configName === 'prerender')
|
|
972
972
|
return false;
|
|
973
973
|
const configNamesGlobal = getConfigNamesGlobal();
|
|
974
|
-
return
|
|
974
|
+
return includes(configNamesGlobal, configName);
|
|
975
975
|
}
|
|
976
976
|
function getConfigNamesGlobal() {
|
|
977
977
|
return Object.keys(configDefinitionsBuiltInGlobal);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { setGlobalContext };
|
|
2
|
-
import { setGlobalContext_viteDevServer } from '../../runtime/globalContext.js';
|
|
2
|
+
import { setGlobalContext_isDev, setGlobalContext_viteDevServer } from '../../runtime/globalContext.js';
|
|
3
|
+
import { isDev3 } from '../utils.js';
|
|
3
4
|
function setGlobalContext() {
|
|
4
5
|
return {
|
|
5
6
|
name: 'vike:setGlobalContext',
|
|
@@ -9,6 +10,12 @@ function setGlobalContext() {
|
|
|
9
10
|
handler(viteDevServer) {
|
|
10
11
|
setGlobalContext_viteDevServer(viteDevServer);
|
|
11
12
|
}
|
|
13
|
+
},
|
|
14
|
+
config: {
|
|
15
|
+
handler(_, env) {
|
|
16
|
+
const isDev = isDev3(env);
|
|
17
|
+
setGlobalContext_isDev(isDev);
|
|
18
|
+
}
|
|
12
19
|
}
|
|
13
20
|
};
|
|
14
21
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from '../runtime/utils.js';
|
|
2
2
|
export * from '../../utils/viteIsSSR.js';
|
|
3
3
|
export * from '../../utils/requireResolve.js';
|
|
4
|
-
export * from '../../utils/
|
|
4
|
+
export * from '../../utils/includes.js';
|
|
5
5
|
export * from '../../utils/isDev.js';
|
|
6
6
|
export * from '../../utils/getMostSimilar.js';
|
|
7
7
|
export * from '../../utils/getRandomId.js';
|
|
@@ -7,7 +7,7 @@ export * from '../runtime/utils.js';
|
|
|
7
7
|
// Utils only needed by `plugin/*`
|
|
8
8
|
export * from '../../utils/viteIsSSR.js';
|
|
9
9
|
export * from '../../utils/requireResolve.js';
|
|
10
|
-
export * from '../../utils/
|
|
10
|
+
export * from '../../utils/includes.js';
|
|
11
11
|
export * from '../../utils/isDev.js';
|
|
12
12
|
export * from '../../utils/getMostSimilar.js';
|
|
13
13
|
export * from '../../utils/getRandomId.js';
|
|
@@ -5,6 +5,7 @@ export { getGlobalContext };
|
|
|
5
5
|
export { getViteDevServer };
|
|
6
6
|
export { getViteConfig };
|
|
7
7
|
export { setGlobalContext_viteDevServer };
|
|
8
|
+
export { setGlobalContext_isDev };
|
|
8
9
|
export { setGlobalContext_prerender };
|
|
9
10
|
export { getRuntimeManifest };
|
|
10
11
|
import type { ViteManifest } from '../shared/ViteManifest.js';
|
|
@@ -47,6 +48,7 @@ declare function getGlobalContextSync(): GlobalContextPublic;
|
|
|
47
48
|
/** @experimental https://vike.dev/getGlobalContext */
|
|
48
49
|
declare function getGlobalContextAsync(): Promise<GlobalContextPublic>;
|
|
49
50
|
declare function setGlobalContext_viteDevServer(viteDevServer: ViteDevServer): void;
|
|
51
|
+
declare function setGlobalContext_isDev(isDev: boolean): void;
|
|
50
52
|
declare function getViteDevServer(): ViteDevServer | null;
|
|
51
53
|
declare function setGlobalContext_prerender(viteConfig: ResolvedConfig): void;
|
|
52
54
|
declare function getViteConfig(): ResolvedConfig | null;
|
|
@@ -7,6 +7,7 @@ export { getGlobalContext };
|
|
|
7
7
|
export { getViteDevServer };
|
|
8
8
|
export { getViteConfig };
|
|
9
9
|
export { setGlobalContext_viteDevServer };
|
|
10
|
+
export { setGlobalContext_isDev };
|
|
10
11
|
export { setGlobalContext_prerender };
|
|
11
12
|
export { getRuntimeManifest };
|
|
12
13
|
import { assert, assertNodeEnv_runtime, assertUsage, assertWarning, getGlobalObject, isPlainObject, objectAssign, objectKeys } from './utils.js';
|
|
@@ -63,10 +64,12 @@ function setGlobalContext_viteDevServer(viteDevServer) {
|
|
|
63
64
|
if (globalObject.viteDevServer)
|
|
64
65
|
return;
|
|
65
66
|
assert(!globalObject.globalContext);
|
|
66
|
-
assert(!globalObject.globalContext);
|
|
67
67
|
globalObject.viteConfig = viteDevServer.config;
|
|
68
68
|
globalObject.viteDevServer = viteDevServer;
|
|
69
69
|
}
|
|
70
|
+
function setGlobalContext_isDev(isDev) {
|
|
71
|
+
globalObject.isDev = isDev;
|
|
72
|
+
}
|
|
70
73
|
function getViteDevServer() {
|
|
71
74
|
return globalObject.viteDevServer ?? null;
|
|
72
75
|
}
|
|
@@ -82,12 +85,12 @@ function getViteConfig() {
|
|
|
82
85
|
async function initGlobalContext(isPrerendering = false, outDir) {
|
|
83
86
|
if (globalObject.globalContext)
|
|
84
87
|
return;
|
|
85
|
-
const { viteDevServer, viteConfig } = globalObject;
|
|
86
|
-
assertNodeEnv_runtime(
|
|
87
|
-
|
|
88
|
-
if (!isProduction) {
|
|
88
|
+
const { viteDevServer, viteConfig, isDev } = globalObject;
|
|
89
|
+
assertNodeEnv_runtime(isDev ?? false);
|
|
90
|
+
if (isDev) {
|
|
89
91
|
assert(viteConfig);
|
|
90
92
|
assert(!isPrerendering);
|
|
93
|
+
assert(viteDevServer);
|
|
91
94
|
const configVike = await getConfigVike(viteConfig);
|
|
92
95
|
const pluginManifest = getRuntimeManifest(configVike);
|
|
93
96
|
globalObject.globalContext = {
|
|
@@ -54,15 +54,17 @@ async function streamReadableNodeToString(readableNode) {
|
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
async function streamReadableWebToString(readableWeb) {
|
|
57
|
-
let str = '';
|
|
58
57
|
const reader = readableWeb.getReader();
|
|
58
|
+
const decoder = new TextDecoder();
|
|
59
|
+
let str = '';
|
|
59
60
|
while (true) {
|
|
60
61
|
const { done, value } = await reader.read();
|
|
61
|
-
if (done)
|
|
62
|
+
if (done)
|
|
62
63
|
break;
|
|
63
|
-
}
|
|
64
|
-
str += value;
|
|
64
|
+
str += decoder.decode(value, { stream: true });
|
|
65
65
|
}
|
|
66
|
+
// https://github.com/vikejs/vike/pull/1799#discussion_r1713554096
|
|
67
|
+
str += decoder.decode();
|
|
66
68
|
return str;
|
|
67
69
|
}
|
|
68
70
|
async function stringToStreamReadableNode(str) {
|
|
@@ -36,6 +36,8 @@ export * from '../../utils/isNotNullish.js';
|
|
|
36
36
|
export * from '../../utils/isScriptFile.js';
|
|
37
37
|
export * from '../../utils/removeFileExtention.js';
|
|
38
38
|
export * from '../../utils/objectKeys.js';
|
|
39
|
+
export * from '../../utils/objectEntries.js';
|
|
40
|
+
export * from '../../utils/objectFromEntries.js';
|
|
39
41
|
export * from '../../utils/getFileExtension.js';
|
|
40
42
|
export * from '../../utils/assertIsNotProductionRuntime.js';
|
|
41
43
|
export * from '../../utils/virtual-files.js';
|
|
@@ -39,6 +39,8 @@ export * from '../../utils/isNotNullish.js';
|
|
|
39
39
|
export * from '../../utils/isScriptFile.js';
|
|
40
40
|
export * from '../../utils/removeFileExtention.js';
|
|
41
41
|
export * from '../../utils/objectKeys.js';
|
|
42
|
+
export * from '../../utils/objectEntries.js';
|
|
43
|
+
export * from '../../utils/objectFromEntries.js';
|
|
42
44
|
export * from '../../utils/getFileExtension.js';
|
|
43
45
|
export * from '../../utils/assertIsNotProductionRuntime.js';
|
|
44
46
|
export * from '../../utils/virtual-files.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.184";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Automatically updated by @brillout/release-me
|
|
2
|
-
export const PROJECT_VERSION = '0.4.
|
|
2
|
+
export const PROJECT_VERSION = '0.4.184';
|
|
@@ -4,7 +4,7 @@ export { assertNodeEnv_onVikePluginLoad };
|
|
|
4
4
|
export { handleNodeEnv_prerender };
|
|
5
5
|
export { handleNodeEnv_vitePluginVercel };
|
|
6
6
|
declare function assertNodeEnv_build(): void;
|
|
7
|
-
declare function assertNodeEnv_runtime(
|
|
7
|
+
declare function assertNodeEnv_runtime(isViteDev: boolean): void;
|
|
8
8
|
declare function assertNodeEnv_onVikePluginLoad(): void;
|
|
9
9
|
declare function handleNodeEnv_prerender(): void;
|
|
10
10
|
declare function handleNodeEnv_vitePluginVercel(): void;
|
|
@@ -24,17 +24,18 @@ assertIsNotBrowser();
|
|
|
24
24
|
function assertNodeEnv_build() {
|
|
25
25
|
assertNodeEnvIsNotDev('building');
|
|
26
26
|
}
|
|
27
|
-
function assertNodeEnv_runtime(
|
|
27
|
+
function assertNodeEnv_runtime(isViteDev) {
|
|
28
28
|
const nodeEnv = getNodeEnv();
|
|
29
29
|
if (nodeEnv === null || nodeEnv === 'test')
|
|
30
30
|
return;
|
|
31
|
-
const
|
|
31
|
+
const isNodeDev = isNodeEnvDev();
|
|
32
32
|
// Calling Vite's createServer() is enough for hasViteDevServer to be true, even without actually adding Vite's development middleware to the server: https://github.com/vikejs/vike/issues/792#issuecomment-1516830759
|
|
33
|
-
if (
|
|
33
|
+
if (isViteDev === isNodeDev)
|
|
34
34
|
return;
|
|
35
35
|
const nodeEnvDesc = getNodeEnvDesc();
|
|
36
36
|
// TODO: make it assertUsage() again once #1528 is implemented.
|
|
37
|
-
|
|
37
|
+
const errMsg = `Running ${isViteDev ? pc.cyan('$ vite dev') : 'app in production'} while the ${nodeEnvDesc} which is contradictory, see https://vike.dev/NODE_ENV`;
|
|
38
|
+
assertWarning(false, errMsg, { onlyOnce: true });
|
|
38
39
|
}
|
|
39
40
|
function assertNodeEnv_onVikePluginLoad() {
|
|
40
41
|
const nodeEnv = getNodeEnv();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// https://stackoverflow.com/questions/56565528/typescript-const-assertions-how-to-use-array-prototype-includes/74213179#74213179
|
|
2
|
+
/** Same as Array.prototype.includes() but with type inference */
|
|
3
|
+
export function includes(values, x) {
|
|
4
|
+
return values.includes(x);
|
|
5
|
+
}
|
|
6
|
+
/*
|
|
7
|
+
export function includes<Arr extends any[] | readonly any[]>(arr: Arr, el: unknown): el is Arr[number] {
|
|
8
|
+
return arr.includes(el as any)
|
|
9
|
+
}
|
|
10
|
+
*/
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
export { isDev1 };
|
|
2
|
-
export { isDev1_onConfigureServer };
|
|
3
1
|
export { isDev2 };
|
|
4
2
|
export { isDev3 };
|
|
5
3
|
import type { ConfigEnv } from 'vite';
|
|
6
|
-
declare function isDev3(configEnv: ConfigEnv):
|
|
7
|
-
declare function isDev1(): boolean;
|
|
8
|
-
declare function isDev1_onConfigureServer(): void | undefined;
|
|
4
|
+
declare function isDev3(configEnv: ConfigEnv): boolean;
|
|
9
5
|
import type { ResolvedConfig } from 'vite';
|
|
10
6
|
declare function isDev2(config: ResolvedConfig): boolean;
|
package/dist/esm/utils/isDev.js
CHANGED
|
@@ -1,32 +1,16 @@
|
|
|
1
|
-
export { isDev1 };
|
|
2
|
-
export { isDev1_onConfigureServer };
|
|
3
1
|
export { isDev2 };
|
|
4
2
|
export { isDev3 };
|
|
3
|
+
import { assert } from './assert.js';
|
|
5
4
|
function isDev3(configEnv) {
|
|
6
5
|
const { isPreview, command } = configEnv;
|
|
7
6
|
if (command !== 'serve')
|
|
8
7
|
return false;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// Method 1 - reliable
|
|
16
|
-
// ********
|
|
17
|
-
import { assert } from './assert.js';
|
|
18
|
-
import { getGlobalObject } from './getGlobalObject.js';
|
|
19
|
-
const globalObject = getGlobalObject('utils/isDev.ts', { isDev: false, isDev_wasCalled: false });
|
|
20
|
-
function isDev1() {
|
|
21
|
-
globalObject.isDev_wasCalled = true;
|
|
22
|
-
return globalObject.isDev;
|
|
23
|
-
}
|
|
24
|
-
function isDev1_onConfigureServer() {
|
|
25
|
-
// configureServer() is called more than once when user presses Vite's dev server reload hotkey <r>
|
|
26
|
-
if (globalObject.isDev)
|
|
27
|
-
return;
|
|
28
|
-
assert(!globalObject.isDev_wasCalled);
|
|
29
|
-
globalObject.isDev = true;
|
|
8
|
+
// `isPreview` is `undefined` in older Vite versions.
|
|
9
|
+
// https://github.com/vitejs/vite/pull/14855
|
|
10
|
+
// https://github.com/vitejs/vite/pull/15695O
|
|
11
|
+
// - Released at `vite@5.1.0`: https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md#510-beta4-2024-01-26:~:text=fix(preview)%3A%20set%20isPreview%20true%20(%2315695)%20(93fce55)%2C%20closes%20%2315695
|
|
12
|
+
assert(typeof isPreview === 'boolean');
|
|
13
|
+
return !isPreview;
|
|
30
14
|
}
|
|
31
15
|
function isDev2(config) {
|
|
32
16
|
const isDev = config.command === 'serve' &&
|
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
export { objectEntries };
|
|
2
|
-
export { objectFromEntries };
|
|
3
|
-
export { objectKeys };
|
|
4
|
-
/** Same as Object.entries() but with type inference */
|
|
5
|
-
declare function objectEntries<T extends object>(obj: T): [keyof T, T[keyof T]][];
|
|
6
|
-
/** Same as Object.fromEntries() but with type inference */
|
|
7
|
-
declare function objectFromEntries<T extends [PropertyKey, unknown][]>(arr: T): Record<T[number][0], T[number][1]>;
|
|
8
1
|
/** Same as Object.keys() but with type inference */
|
|
9
|
-
declare function objectKeys<T extends object>(obj: T): (keyof T)[];
|
|
2
|
+
export declare function objectKeys<T extends object>(obj: T): (keyof T)[];
|
|
@@ -1,27 +1,6 @@
|
|
|
1
|
-
export { objectEntries };
|
|
2
|
-
export { objectFromEntries };
|
|
3
|
-
export { objectKeys };
|
|
4
|
-
// export { forEach }
|
|
5
|
-
// https://stackoverflow.com/questions/60141960/typescript-key-value-relation-preserving-object-entries-type/75337277#75337277
|
|
6
|
-
/** Same as Object.entries() but with type inference */
|
|
7
|
-
function objectEntries(obj) {
|
|
8
|
-
return Object.entries(obj);
|
|
9
|
-
}
|
|
10
|
-
/** Same as Object.fromEntries() but with type inference */
|
|
11
|
-
function objectFromEntries(arr) {
|
|
12
|
-
return Object.fromEntries(arr);
|
|
13
|
-
}
|
|
14
1
|
// https://stackoverflow.com/questions/52856496/typescript-object-keys-return-string
|
|
15
2
|
// https://github.com/sindresorhus/ts-extras/blob/main/source/object-keys.ts
|
|
16
3
|
/** Same as Object.keys() but with type inference */
|
|
17
|
-
function objectKeys(obj) {
|
|
4
|
+
export function objectKeys(obj) {
|
|
18
5
|
return Object.keys(obj);
|
|
19
6
|
}
|
|
20
|
-
/* Not used yet, but can be quite useful.
|
|
21
|
-
function forEach<Obj extends object>(
|
|
22
|
-
obj: Obj,
|
|
23
|
-
iterator: <Key extends keyof Obj>(key: Key, val: Obj[Key]) => void
|
|
24
|
-
): void {
|
|
25
|
-
Object.entries(obj).forEach(([key, val]) => iterator(key as keyof Obj, val))
|
|
26
|
-
}
|
|
27
|
-
//*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vike",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.184",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "tsc --watch",
|
|
6
6
|
"build": "rimraf dist/ && pnpm run build:esm && pnpm run build:cjs",
|
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
},
|
|
149
149
|
"peerDependencies": {
|
|
150
150
|
"react-streaming": ">=0.3.42",
|
|
151
|
-
"vite": ">=
|
|
151
|
+
"vite": ">=5.1.0"
|
|
152
152
|
},
|
|
153
153
|
"peerDependenciesMeta": {
|
|
154
154
|
"react-streaming": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function arrayIncludes<Arr extends any[] | readonly any[]>(arr: Arr, el: unknown): el is Arr[number];
|