vike 0.4.227-commit-e36b916 → 0.4.227-commit-710dcb6
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/plugins/build/pluginBuildConfig.js +2 -2
- package/dist/cjs/node/plugin/plugins/build/pluginBuildEntry.js +2 -2
- package/dist/cjs/node/plugin/plugins/commonConfig.js +2 -1
- package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +1 -0
- package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +5 -7
- package/dist/cjs/node/prerender/runPrerender.js +168 -150
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +1 -0
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +0 -23
- package/dist/cjs/shared/route/index.js +13 -11
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/findPackageJson.js +2 -2
- package/dist/cjs/utils/preservePropertyGetters.js +30 -0
- package/dist/cjs/utils/requireResolve.js +57 -13
- package/dist/esm/node/plugin/plugins/commonConfig.js +2 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +1 -0
- package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +4 -6
- package/dist/esm/node/prerender/runPrerender.d.ts +2 -0
- package/dist/esm/node/prerender/runPrerender.js +171 -153
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +0 -182
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +0 -23
- package/dist/esm/shared/route/index.d.ts +1 -1
- package/dist/esm/shared/route/index.js +13 -11
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/preservePropertyGetters.d.ts +2 -0
- package/dist/esm/utils/preservePropertyGetters.js +28 -0
- package/dist/esm/utils/requireResolve.d.ts +4 -0
- package/dist/esm/utils/requireResolve.js +51 -10
- package/package.json +1 -1
|
@@ -18,23 +18,25 @@ const resolveRouteFunction_js_1 = require("./resolveRouteFunction.js");
|
|
|
18
18
|
const executeOnBeforeRouteHook_js_1 = require("./executeOnBeforeRouteHook.js");
|
|
19
19
|
const debug_js_1 = require("./debug.js");
|
|
20
20
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
21
|
-
async function route(pageContext) {
|
|
21
|
+
async function route(pageContext, skipOnBeforeRouteHook) {
|
|
22
22
|
(0, debug_js_1.debug)('Pages routes:', pageContext._pageRoutes);
|
|
23
23
|
(0, getPageContextUrlComputed_js_1.assertPageContextUrl)(pageContext);
|
|
24
24
|
const pageContextFromRoute = {};
|
|
25
25
|
// onBeforeRoute()
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (pageContextFromOnBeforeRouteHook
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
if (!skipOnBeforeRouteHook) {
|
|
27
|
+
const pageContextFromOnBeforeRouteHook = await (0, executeOnBeforeRouteHook_js_1.executeOnBeforeRouteHook)(pageContext);
|
|
28
|
+
if (pageContextFromOnBeforeRouteHook) {
|
|
29
|
+
if (pageContextFromOnBeforeRouteHook._routingProvidedByOnBeforeRouteHook) {
|
|
30
|
+
(0, utils_js_1.assert)(pageContextFromOnBeforeRouteHook.pageId);
|
|
31
|
+
return pageContextFromOnBeforeRouteHook;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
(0, utils_js_1.objectAssign)(pageContextFromRoute, pageContextFromOnBeforeRouteHook);
|
|
35
|
+
}
|
|
34
36
|
}
|
|
37
|
+
// We take into account pageContext.urlLogical set by onBeforeRoute()
|
|
38
|
+
(0, utils_js_1.objectAssign)(pageContext, pageContextFromOnBeforeRouteHook);
|
|
35
39
|
}
|
|
36
|
-
// We take into account pageContext.urlLogical set by onBeforeRoute()
|
|
37
|
-
(0, utils_js_1.objectAssign)(pageContext, pageContextFromOnBeforeRouteHook);
|
|
38
40
|
// Vike's routing
|
|
39
41
|
const allPageIds = pageContext._allPageIds;
|
|
40
42
|
(0, utils_js_1.assertUsage)(allPageIds.length > 0, 'No page found. You must create at least one page.');
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.findPackageJson = findPackageJson;
|
|
4
4
|
const findFile_js_1 = require("./findFile.js");
|
|
5
5
|
const module_1 = require("module");
|
|
6
|
-
// @ts-ignore `file://${__filename}` is shimmed at dist/cjs by dist-cjs-fixup.js.
|
|
7
|
-
const importMetaUrl = `file://${__filename}`;
|
|
6
|
+
// @ts-ignore `file://${__filename.split('\\').join('/')}` is shimmed at dist/cjs by dist-cjs-fixup.js.
|
|
7
|
+
const importMetaUrl = `file://${__filename.split('\\').join('/')}`;
|
|
8
8
|
const require_ = (0, module_1.createRequire)(importMetaUrl);
|
|
9
9
|
function findPackageJson(cwd) {
|
|
10
10
|
const packageJsonPath = (0, findFile_js_1.findFile)('package.json', cwd);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.preservePropertyGetters = preservePropertyGetters;
|
|
4
|
+
const assert_js_1 = require("./assert.js");
|
|
5
|
+
function preservePropertyGetters(objOriginal) {
|
|
6
|
+
// Store original getter descriptors
|
|
7
|
+
const getters = Object.fromEntries(Object.entries(Object.getOwnPropertyDescriptors(objOriginal)).filter(([_, desc]) => 'get' in desc));
|
|
8
|
+
// Make getters non-enumerable
|
|
9
|
+
for (const [key, desc] of Object.entries(getters)) {
|
|
10
|
+
Object.defineProperty(objOriginal, key, { ...desc, enumerable: false });
|
|
11
|
+
}
|
|
12
|
+
const restorePropertyGetters = function () {
|
|
13
|
+
const objCopy = this;
|
|
14
|
+
delete objOriginal._restorePropertyGetters;
|
|
15
|
+
delete objCopy._restorePropertyGetters;
|
|
16
|
+
for (const [key, desc] of Object.entries(getters)) {
|
|
17
|
+
if (objCopy !== objOriginal) {
|
|
18
|
+
(0, assert_js_1.assert)(!(key in objCopy));
|
|
19
|
+
Object.defineProperty(objCopy, key, desc); // Add property getters to copy
|
|
20
|
+
}
|
|
21
|
+
(0, assert_js_1.assert)(key in objOriginal);
|
|
22
|
+
Object.defineProperty(objOriginal, key, desc); // Restore original `enumerable` value
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(objOriginal, '_restorePropertyGetters', {
|
|
26
|
+
value: restorePropertyGetters,
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true
|
|
29
|
+
});
|
|
30
|
+
}
|
|
@@ -1,38 +1,82 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.requireResolve = requireResolve;
|
|
7
|
+
exports.requireResolveExpected = requireResolveExpected;
|
|
8
|
+
exports.requireResolveInternal = requireResolveInternal;
|
|
4
9
|
const assert_js_1 = require("./assert.js");
|
|
5
10
|
const assertIsNotBrowser_js_1 = require("./assertIsNotBrowser.js");
|
|
6
11
|
const assertSetup_js_1 = require("./assertSetup.js");
|
|
7
12
|
const path_js_1 = require("./path.js");
|
|
8
13
|
const isScriptFile_js_1 = require("./isScriptFile.js");
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
14
|
+
const node_module_1 = require("node:module");
|
|
15
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
+
// @ts-ignore `file://${__filename.split('\\').join('/')}` is shimmed at dist/cjs by dist-cjs-fixup.js.
|
|
17
|
+
const importMetaUrl = `file://${__filename.split('\\').join('/')}`;
|
|
18
|
+
const require_ = (0, node_module_1.createRequire)(importMetaUrl);
|
|
13
19
|
(0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
|
|
14
20
|
(0, assertSetup_js_1.assertIsNotProductionRuntime)();
|
|
15
|
-
|
|
16
|
-
// - https://stackoverflow.com/questions/54977743/do-require-resolve-for-es-modules#comment139581675_62272600
|
|
17
|
-
function requireResolve(importPath, cwd) {
|
|
21
|
+
function requireResolve_(importPath, cwd) {
|
|
18
22
|
(0, path_js_1.assertPosixPath)(cwd);
|
|
23
|
+
(0, path_js_1.assertPosixPath)(importPath);
|
|
24
|
+
cwd = resolveCwd(cwd);
|
|
19
25
|
const clean = addFileExtensionsToRequireResolve();
|
|
20
26
|
importPath = removeFileExtention(importPath);
|
|
21
27
|
let importedFile;
|
|
22
28
|
try {
|
|
29
|
+
// We still can't use import.meta.resolve() as of 23.1.0 (November 2024) because `parent` argument requires an experimental flag.
|
|
30
|
+
// - https://stackoverflow.com/questions/54977743/do-require-resolve-for-es-modules#comment139581675_62272600
|
|
23
31
|
importedFile = require_.resolve(importPath, { paths: [cwd] });
|
|
24
32
|
}
|
|
25
|
-
catch {
|
|
26
|
-
importedFile = null;
|
|
27
|
-
}
|
|
28
|
-
finally {
|
|
33
|
+
catch (err) {
|
|
29
34
|
clean();
|
|
35
|
+
return { importedFile: undefined, err, hasFailed: true };
|
|
30
36
|
}
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
clean();
|
|
38
|
+
importedFile = (0, path_js_1.toPosixPath)(importedFile);
|
|
39
|
+
return { importedFile, err: undefined, hasFailed: false };
|
|
40
|
+
}
|
|
41
|
+
function requireResolve(importPath, cwd) {
|
|
42
|
+
const res = requireResolve_(importPath, cwd);
|
|
43
|
+
if (res.hasFailed)
|
|
44
|
+
return null;
|
|
45
|
+
return res.importedFile;
|
|
46
|
+
}
|
|
47
|
+
function requireResolveExpected(importPath, cwd) {
|
|
48
|
+
const res = requireResolve_(importPath, cwd);
|
|
49
|
+
if (res.hasFailed)
|
|
50
|
+
throw res.err;
|
|
51
|
+
return res.importedFile;
|
|
52
|
+
}
|
|
53
|
+
// For internal Vike files that are expected to exist and to be .js files
|
|
54
|
+
function requireResolveInternal(importPath, cwd) {
|
|
55
|
+
(0, path_js_1.assertPosixPath)(cwd);
|
|
56
|
+
(0, path_js_1.assertPosixPath)(importPath);
|
|
57
|
+
cwd = resolveCwd(cwd);
|
|
58
|
+
let importedFile;
|
|
59
|
+
try {
|
|
60
|
+
importedFile = require_.resolve(importPath, { paths: [cwd] });
|
|
33
61
|
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
console.log('err', err);
|
|
64
|
+
(0, assert_js_1.assert)(false, { cwd, importPath });
|
|
65
|
+
}
|
|
66
|
+
importedFile = (0, path_js_1.toPosixPath)(importedFile);
|
|
34
67
|
return importedFile;
|
|
35
68
|
}
|
|
69
|
+
function resolveCwd(cwd) {
|
|
70
|
+
let prefix = 'file://';
|
|
71
|
+
if (process.platform === 'win32')
|
|
72
|
+
prefix += '/';
|
|
73
|
+
if (cwd.startsWith(prefix)) {
|
|
74
|
+
cwd = cwd.slice(prefix.length);
|
|
75
|
+
cwd = node_path_1.default.posix.dirname(cwd);
|
|
76
|
+
}
|
|
77
|
+
(0, assert_js_1.assert)(!cwd.startsWith('file:'));
|
|
78
|
+
return cwd;
|
|
79
|
+
}
|
|
36
80
|
function removeFileExtention(importPath) {
|
|
37
81
|
// Skip for Bun: https://github.com/vikejs/vike/issues/2204
|
|
38
82
|
//@ts-ignore
|
|
@@ -33,7 +33,8 @@ function commonConfig(vikeVitePluginOptions) {
|
|
|
33
33
|
isPrerenderingEnabled,
|
|
34
34
|
isPrerenderingEnabledForAllPages,
|
|
35
35
|
output: null,
|
|
36
|
-
pageContexts: null
|
|
36
|
+
pageContexts: null,
|
|
37
|
+
pageContexts404: null
|
|
37
38
|
});
|
|
38
39
|
assert(prerenderContext.isPrerenderingEnabled === isPrerenderingEnabled);
|
|
39
40
|
assert(prerenderContext.isPrerenderingEnabledForAllPages === isPrerenderingEnabledForAllPages);
|
|
@@ -568,6 +568,7 @@ function getConfigValueSource(configName, plusFile, configDef, userRootDir) {
|
|
|
568
568
|
// Defined over pointer import
|
|
569
569
|
assert(confVal.valueIsLoaded);
|
|
570
570
|
const pointerImport = resolvePointerImport(confVal.value, plusFile.filePath, userRootDir, configName);
|
|
571
|
+
console.log('pointerImport', pointerImport);
|
|
571
572
|
const configDefinedAt = getConfigDefinedAt('Config', configName, definedAtFilePath_);
|
|
572
573
|
assertUsage(pointerImport, `${configDefinedAt} should be an import`);
|
|
573
574
|
valueFilePath = pointerImport.fileExportPath.filePathAbsoluteVite;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
export { resolveClientEntriesDev };
|
|
2
|
-
import { assert, assertPosixPath, toPosixPath, pathJoin, assertIsNpmPackageImport, assertIsNotProductionRuntime } from '../utils.js';
|
|
3
|
-
import { createRequire } from 'module';
|
|
2
|
+
import { assert, assertPosixPath, toPosixPath, pathJoin, assertIsNpmPackageImport, assertIsNotProductionRuntime, requireResolveInternal, requireResolveExpected } from '../utils.js';
|
|
4
3
|
// @ts-ignore import.meta.url is shimmed at dist/cjs by dist-cjs-fixup.js.
|
|
5
4
|
const importMetaUrl = import.meta.url;
|
|
6
|
-
const require_ = createRequire(importMetaUrl);
|
|
7
5
|
assertIsNotProductionRuntime();
|
|
8
6
|
async function resolveClientEntriesDev(clientEntry, viteDevServer) {
|
|
9
7
|
let root = viteDevServer.config.root;
|
|
@@ -30,17 +28,17 @@ async function resolveClientEntriesDev(clientEntry, viteDevServer) {
|
|
|
30
28
|
try {
|
|
31
29
|
// For Vitest (which doesn't resolve vike to its dist but to its source files)
|
|
32
30
|
// [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/node/plugin/shared/resolveClientEntriesDev.js
|
|
33
|
-
filePath =
|
|
31
|
+
filePath = requireResolveInternal(clientEntry.replace('@@vike/dist/esm/client/', '../../../client/').replace('.js', '.ts'), importMetaUrl);
|
|
34
32
|
}
|
|
35
33
|
catch {
|
|
36
34
|
// For users
|
|
37
35
|
// [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/shared/resolveClientEntriesDev.js
|
|
38
|
-
filePath =
|
|
36
|
+
filePath = requireResolveInternal(clientEntry.replace('@@vike/dist/esm/client/', '../../../../../dist/esm/client/'), importMetaUrl);
|
|
39
37
|
}
|
|
40
38
|
}
|
|
41
39
|
else {
|
|
42
40
|
assertIsNpmPackageImport(clientEntry);
|
|
43
|
-
filePath =
|
|
41
|
+
filePath = requireResolveExpected(clientEntry, root);
|
|
44
42
|
}
|
|
45
43
|
}
|
|
46
44
|
if (!filePath.startsWith('/')) {
|
|
@@ -14,6 +14,7 @@ type ProvidedByHook = null | {
|
|
|
14
14
|
type PageContextPrerendered = {
|
|
15
15
|
urlOriginal: string;
|
|
16
16
|
_providedByHook?: ProvidedByHook;
|
|
17
|
+
pageId: string;
|
|
17
18
|
};
|
|
18
19
|
type Output<PageContext = PageContextPrerendered> = {
|
|
19
20
|
filePath: string;
|
|
@@ -53,4 +54,5 @@ declare function runPrerender_forceExit(): void;
|
|
|
53
54
|
type PrerenderContextPublic = {
|
|
54
55
|
output: Output<PageContextServer>;
|
|
55
56
|
pageContexts: PageContextServer[];
|
|
57
|
+
pageContexts404: PageContextServer;
|
|
56
58
|
};
|