vike 0.4.224 → 0.4.225-commit-2b7971f
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/client/shared/getPageContextProxyForUser.js +3 -66
- package/dist/cjs/node/api/build.js +1 -1
- package/dist/cjs/node/api/context.js +4 -4
- package/dist/cjs/node/api/dev.js +1 -1
- package/dist/cjs/node/api/prepareViteApiCall.js +25 -14
- package/dist/cjs/node/api/prerender.js +1 -1
- package/dist/cjs/node/api/preview.js +1 -1
- package/dist/cjs/node/cli/context.js +5 -4
- package/dist/cjs/node/cli/entry.js +3 -3
- package/dist/cjs/node/cli/parseCli.js +43 -15
- package/dist/cjs/node/cli/utils.js +1 -1
- package/dist/cjs/node/plugin/plugins/build/pluginBuildEntry.js +1 -1
- package/dist/cjs/node/plugin/plugins/commonConfig.js +16 -11
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +6 -4
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +14 -10
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -12
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +139 -84
- package/dist/cjs/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +10 -1
- package/dist/cjs/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/cjs/node/plugin/shared/getEnvVarObject.js +9 -8
- package/dist/cjs/node/plugin/shared/loggerNotProd/log.js +1 -1
- package/dist/cjs/node/prerender/context.js +1 -1
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +33 -18
- package/dist/cjs/node/prerender/runPrerender.js +12 -18
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +9 -5
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +6 -3
- package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +67 -14
- package/dist/cjs/node/runtime/html/stream.js +7 -0
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +14 -5
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +2 -4
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +6 -1
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +3 -0
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +18 -12
- package/dist/cjs/node/runtime/renderPage.js +19 -38
- package/dist/cjs/node/runtime/utils.js +0 -1
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +10 -8
- package/dist/cjs/node/shared/assertV1Design.js +2 -1
- package/dist/cjs/node/shared/utils.js +0 -1
- package/dist/cjs/shared/NOT_SERIALIZABLE.js +5 -0
- package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +19 -2
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +8 -5
- package/dist/cjs/shared/page-configs/helpers.js +1 -1
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +2 -5
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +9 -5
- package/dist/cjs/shared/route/loadPageRoutes.js +2 -2
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +12 -5
- package/dist/cjs/utils/assertSingleInstance.js +11 -17
- package/dist/cjs/utils/debug.js +2 -1
- package/dist/cjs/utils/getRandomId.js +1 -1
- package/dist/cjs/utils/normalizeHeaders.js +1 -1
- package/dist/cjs/utils/objectAssign.js +7 -2
- package/dist/cjs/utils/parseUrl-extras.js +1 -0
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -3
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +1 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +6 -3
- package/dist/esm/client/server-routing-runtime/getPageContext.js +6 -3
- package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +1 -11
- package/dist/esm/client/shared/getPageContextProxyForUser.js +4 -67
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/api/build.js +1 -1
- package/dist/esm/node/api/context.d.ts +8 -2
- package/dist/esm/node/api/context.js +4 -4
- package/dist/esm/node/api/dev.js +1 -1
- package/dist/esm/node/api/prepareViteApiCall.d.ts +2 -2
- package/dist/esm/node/api/prepareViteApiCall.js +25 -14
- package/dist/esm/node/api/prerender.js +1 -1
- package/dist/esm/node/api/preview.js +1 -1
- package/dist/esm/node/api/types.d.ts +7 -0
- package/dist/esm/node/cli/context.d.ts +4 -2
- package/dist/esm/node/cli/context.js +5 -4
- package/dist/esm/node/cli/entry.js +4 -4
- package/dist/esm/node/cli/parseCli.d.ts +3 -0
- package/dist/esm/node/cli/parseCli.js +44 -16
- package/dist/esm/node/cli/utils.d.ts +1 -1
- package/dist/esm/node/cli/utils.js +1 -1
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.js +2 -2
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/commonConfig.js +16 -11
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +6 -4
- package/dist/esm/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +15 -11
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +3 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +5 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -12
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +3 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +141 -85
- package/dist/esm/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +11 -2
- package/dist/esm/node/plugin/shared/addSsrMiddleware.d.ts +1 -1
- package/dist/esm/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/esm/node/plugin/shared/getEnvVarObject.d.ts +3 -1
- package/dist/esm/node/plugin/shared/getEnvVarObject.js +9 -8
- package/dist/esm/node/plugin/shared/loggerNotProd/log.js +2 -2
- package/dist/esm/node/prerender/context.js +1 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +2 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +34 -19
- package/dist/esm/node/prerender/runPrerender.js +13 -19
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/globalContext.d.ts +1 -1
- package/dist/esm/node/runtime/globalContext.js +10 -6
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +6 -3
- package/dist/esm/node/runtime/html/serializePageContextClientSide.d.ts +2 -0
- package/dist/esm/node/runtime/html/serializePageContextClientSide.js +69 -15
- package/dist/esm/node/runtime/html/stream.js +7 -0
- package/dist/esm/node/runtime/index-deprecated.d.ts +1 -3
- package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.d.ts +3 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +15 -6
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +3 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +2 -4
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +6 -1
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +3 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +32 -6
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +18 -12
- package/dist/esm/node/runtime/renderPage.js +21 -40
- package/dist/esm/node/runtime/utils.d.ts +0 -1
- package/dist/esm/node/runtime/utils.js +0 -1
- package/dist/esm/node/runtime-dev/createDevMiddleware.js +10 -8
- package/dist/esm/node/shared/assertV1Design.js +2 -1
- package/dist/esm/node/shared/utils.d.ts +0 -1
- package/dist/esm/node/shared/utils.js +0 -1
- package/dist/esm/shared/NOT_SERIALIZABLE.d.ts +1 -0
- package/dist/esm/shared/NOT_SERIALIZABLE.js +2 -0
- package/dist/esm/shared/page-configs/Config.d.ts +23 -3
- package/dist/esm/shared/page-configs/PageConfig.d.ts +17 -6
- package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +5 -3
- package/dist/esm/shared/page-configs/getConfigDefinedAt.js +20 -3
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +8 -5
- package/dist/esm/shared/page-configs/helpers.js +1 -1
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.d.ts +1 -1
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +2 -5
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +3 -3
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +9 -5
- package/dist/esm/shared/route/abort.d.ts +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +2 -2
- package/dist/esm/shared/types.d.ts +39 -3
- package/dist/esm/types/index.d.ts +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/assert.d.ts +2 -1
- package/dist/esm/utils/assert.js +12 -5
- package/dist/esm/utils/assertSingleInstance.js +11 -17
- package/dist/esm/utils/debug.js +2 -1
- package/dist/esm/utils/getRandomId.d.ts +1 -1
- package/dist/esm/utils/getRandomId.js +1 -1
- package/dist/esm/utils/normalizeHeaders.js +1 -1
- package/dist/esm/utils/objectAssign.d.ts +1 -1
- package/dist/esm/utils/objectAssign.js +7 -2
- package/dist/esm/utils/parseUrl-extras.js +1 -0
- package/package.json +6 -3
- package/dist/cjs/shared/notSerializable.js +0 -5
- package/dist/cjs/utils/projectInfo.js +0 -8
- package/dist/esm/shared/notSerializable.d.ts +0 -1
- package/dist/esm/shared/notSerializable.js +0 -2
- package/dist/esm/utils/projectInfo.d.ts +0 -4
- package/dist/esm/utils/projectInfo.js +0 -5
|
@@ -108,15 +108,9 @@ async function renderPageAlreadyPrepared(pageContextInit, globalContext, httpReq
|
|
|
108
108
|
// https://stackoverflow.com/questions/9683007/detect-infinite-http-redirect-loop-on-server-side
|
|
109
109
|
0);
|
|
110
110
|
let pageContextNominalPageSuccess;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
(0, utils_js_1.objectAssign)(pageContextNominalPageInit, pageContextFromAllRewrites);
|
|
115
|
-
}
|
|
116
|
-
{
|
|
117
|
-
const pageContextInitEnhanced = await getPageContextInitEnhancedSSR(pageContextInit, globalContext, pageContextNominalPageInit._urlRewrite, httpRequestId);
|
|
118
|
-
(0, utils_js_1.objectAssign)(pageContextNominalPageInit, pageContextInitEnhanced);
|
|
119
|
-
}
|
|
111
|
+
const pageContextFromAllRewrites = (0, abort_js_1.getPageContextFromAllRewrites)(pageContextsFromRewrite);
|
|
112
|
+
const pageContextNominalPageInit = await getPageContextInitEnhancedSSR(pageContextInit, globalContext, pageContextFromAllRewrites._urlRewrite, httpRequestId);
|
|
113
|
+
(0, utils_js_1.objectAssign)(pageContextNominalPageInit, pageContextFromAllRewrites);
|
|
120
114
|
let errNominalPage;
|
|
121
115
|
{
|
|
122
116
|
try {
|
|
@@ -247,7 +241,7 @@ function prettyUrl(url) {
|
|
|
247
241
|
return picocolors_1.default.bold(decodeURI(url));
|
|
248
242
|
}
|
|
249
243
|
function getPageContextHttpResponseError(err, pageContextInit, pageContext) {
|
|
250
|
-
const pageContextWithError = createPageContext(pageContextInit);
|
|
244
|
+
const pageContextWithError = (0, renderPageAlreadyRouted_js_1.createPageContext)(pageContextInit, false);
|
|
251
245
|
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseError)(pageContext);
|
|
252
246
|
(0, utils_js_1.objectAssign)(pageContextWithError, {
|
|
253
247
|
httpResponse,
|
|
@@ -255,13 +249,6 @@ function getPageContextHttpResponseError(err, pageContextInit, pageContext) {
|
|
|
255
249
|
});
|
|
256
250
|
return pageContextWithError;
|
|
257
251
|
}
|
|
258
|
-
function createPageContext(pageContextInit) {
|
|
259
|
-
const pageContext = {
|
|
260
|
-
_isPageContextObject: true
|
|
261
|
-
};
|
|
262
|
-
Object.assign(pageContext, pageContextInit);
|
|
263
|
-
return pageContext;
|
|
264
|
-
}
|
|
265
252
|
async function renderPageNominal(pageContext) {
|
|
266
253
|
(0, utils_js_1.objectAssign)(pageContext, { errorWhileRendering: null });
|
|
267
254
|
// Route
|
|
@@ -286,10 +273,8 @@ async function renderPageNominal(pageContext) {
|
|
|
286
273
|
return pageContextAfterRender;
|
|
287
274
|
}
|
|
288
275
|
async function getPageContextErrorPageInit(pageContextInit, globalContext, errNominalPage, pageContextNominalPagePartial, httpRequestId) {
|
|
289
|
-
const
|
|
276
|
+
const pageContext = await getPageContextInitEnhancedSSR(pageContextInit, globalContext, null, httpRequestId);
|
|
290
277
|
(0, utils_js_1.assert)(errNominalPage);
|
|
291
|
-
const pageContext = {};
|
|
292
|
-
(0, utils_js_1.objectAssign)(pageContext, pageContextInitEnhanced);
|
|
293
278
|
(0, utils_js_1.objectAssign)(pageContext, {
|
|
294
279
|
is404: false,
|
|
295
280
|
errorWhileRendering: errNominalPage,
|
|
@@ -303,7 +288,7 @@ async function getPageContextErrorPageInit(pageContextInit, globalContext, errNo
|
|
|
303
288
|
}
|
|
304
289
|
async function getPageContextInitEnhancedSSR(pageContextInit, globalContext, urlRewrite, httpRequestId) {
|
|
305
290
|
const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
|
|
306
|
-
const pageContextInitEnhanced = await (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, globalContext, {
|
|
291
|
+
const pageContextInitEnhanced = await (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, globalContext, false, {
|
|
307
292
|
ssr: {
|
|
308
293
|
urlRewrite,
|
|
309
294
|
urlHandler: _urlHandler,
|
|
@@ -346,8 +331,8 @@ async function normalizeUrl(pageContextInit, globalContext, httpRequestId) {
|
|
|
346
331
|
if (!urlNormalized)
|
|
347
332
|
return null;
|
|
348
333
|
(0, loggerRuntime_js_1.logRuntimeInfo)?.(`URL normalized from ${picocolors_1.default.cyan(urlOriginal)} to ${picocolors_1.default.cyan(urlNormalized)} (https://vike.dev/url-normalization)`, httpRequestId, 'info');
|
|
349
|
-
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseRedirect)({ url: urlNormalized, statusCode: 301 }, pageContextInit
|
|
350
|
-
const pageContextHttpResponse = createPageContext(pageContextInit);
|
|
334
|
+
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseRedirect)({ url: urlNormalized, statusCode: 301 }, pageContextInit);
|
|
335
|
+
const pageContextHttpResponse = (0, renderPageAlreadyRouted_js_1.createPageContext)(pageContextInit, false);
|
|
351
336
|
(0, utils_js_1.objectAssign)(pageContextHttpResponse, { httpResponse });
|
|
352
337
|
return pageContextHttpResponse;
|
|
353
338
|
}
|
|
@@ -388,15 +373,17 @@ async function getPermanentRedirect(pageContextInit, globalContext, httpRequestI
|
|
|
388
373
|
(0, utils_js_1.assert)(urlTarget !== pageContextInit.urlOriginal);
|
|
389
374
|
}
|
|
390
375
|
(0, loggerRuntime_js_1.logRuntimeInfo)?.(`Permanent redirection defined by config.redirects (https://vike.dev/redirects)`, httpRequestId, 'info');
|
|
391
|
-
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseRedirect)({ url: urlTarget, statusCode: 301 },
|
|
392
|
-
const pageContextHttpResponse = createPageContext(pageContextInit);
|
|
376
|
+
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseRedirect)({ url: urlTarget, statusCode: 301 }, pageContextInit);
|
|
377
|
+
const pageContextHttpResponse = (0, renderPageAlreadyRouted_js_1.createPageContext)(pageContextInit, false);
|
|
393
378
|
(0, utils_js_1.objectAssign)(pageContextHttpResponse, { httpResponse });
|
|
394
379
|
return pageContextHttpResponse;
|
|
395
380
|
}
|
|
396
381
|
function normalize(url) {
|
|
397
382
|
return url || '/';
|
|
398
383
|
}
|
|
399
|
-
async function handleAbortError(errAbort, pageContextsFromRewrite,
|
|
384
|
+
async function handleAbortError(errAbort, pageContextsFromRewrite,
|
|
385
|
+
// The original `pageContextInit` object passed to `renderPage(pageContextInit)`
|
|
386
|
+
pageContextInit,
|
|
400
387
|
// handleAbortError() creates a new pageContext object and we don't merge pageContextNominalPageInit to it: we only use some pageContextNominalPageInit information.
|
|
401
388
|
pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalContext) {
|
|
402
389
|
(0, abort_js_1.logAbortErrorHandled)(errAbort, globalContext.isProduction, pageContextNominalPageInit);
|
|
@@ -408,10 +395,10 @@ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalConte
|
|
|
408
395
|
const abortCall = pageContextAbort._abortCall;
|
|
409
396
|
(0, utils_js_1.assert)(abortCall);
|
|
410
397
|
(0, utils_js_1.assertUsage)(errorPageId, `You called ${picocolors_1.default.cyan(abortCall)} but you didn't define an error page, make sure to define one https://vike.dev/error-page`);
|
|
411
|
-
const pageContext = createPageContext({});
|
|
398
|
+
const pageContext = (0, renderPageAlreadyRouted_js_1.createPageContext)({}, false);
|
|
412
399
|
(0, utils_js_1.objectAssign)(pageContext, { pageId: errorPageId });
|
|
413
400
|
(0, utils_js_1.objectAssign)(pageContext, pageContextAbort);
|
|
414
|
-
(0, utils_js_1.objectAssign)(pageContext, pageContextErrorPageInit);
|
|
401
|
+
(0, utils_js_1.objectAssign)(pageContext, pageContextErrorPageInit, true);
|
|
415
402
|
(0, utils_js_1.objectAssign)(pageContext, await (0, loadUserFilesServerSide_js_1.loadUserFilesServerSide)(pageContext));
|
|
416
403
|
// We include pageContextInit: we don't only serialize pageContextAbort because the error page may need to access pageContextInit
|
|
417
404
|
pageContextSerialized = (0, serializePageContextClientSide_js_1.serializePageContextClientSide)(pageContext);
|
|
@@ -432,15 +419,9 @@ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalConte
|
|
|
432
419
|
return { pageContextReturn };
|
|
433
420
|
}
|
|
434
421
|
if (pageContextAbort._urlRedirect) {
|
|
435
|
-
const pageContextReturn = createPageContext(pageContextInit);
|
|
422
|
+
const pageContextReturn = (0, renderPageAlreadyRouted_js_1.createPageContext)(pageContextInit, false);
|
|
436
423
|
(0, utils_js_1.objectAssign)(pageContextReturn, pageContextAbort);
|
|
437
|
-
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseRedirect)(pageContextAbort._urlRedirect,
|
|
438
|
-
const { pathname, searchOriginal } = pageContextNominalPageInit.urlParsed;
|
|
439
|
-
const urlLogical = (0, utils_js_1.createUrlFromComponents)(null, pathname, searchOriginal,
|
|
440
|
-
// The server-side doesn't have access to the hash
|
|
441
|
-
null);
|
|
442
|
-
return urlLogical;
|
|
443
|
-
})());
|
|
424
|
+
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseRedirect)(pageContextAbort._urlRedirect, pageContextInit);
|
|
444
425
|
(0, utils_js_1.objectAssign)(pageContextReturn, { httpResponse });
|
|
445
426
|
return { pageContextReturn };
|
|
446
427
|
}
|
|
@@ -453,7 +434,7 @@ async function checkBaseUrl(pageContextInit, globalContext) {
|
|
|
453
434
|
const { isBaseMissing } = (0, utils_js_1.parseUrl)(urlOriginal, baseServer);
|
|
454
435
|
if (!isBaseMissing)
|
|
455
436
|
return;
|
|
456
|
-
const pageContext = createPageContext(pageContextInit);
|
|
437
|
+
const pageContext = (0, renderPageAlreadyRouted_js_1.createPageContext)(pageContextInit, false);
|
|
457
438
|
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseBaseIsMissing)(urlOriginal, baseServer);
|
|
458
439
|
(0, utils_js_1.objectAssign)(pageContext, {
|
|
459
440
|
httpResponse,
|
|
@@ -466,7 +447,7 @@ function renderInvalidRequest(pageContextInit) {
|
|
|
466
447
|
const urlPathnameWithBase = (0, utils_js_1.parseUrl)(pageContextInit.urlOriginal, '/').pathname;
|
|
467
448
|
assertIsNotViteRequest(urlPathnameWithBase, pageContextInit.urlOriginal);
|
|
468
449
|
if (urlPathnameWithBase.endsWith('/favicon.ico')) {
|
|
469
|
-
const pageContext = createPageContext(pageContextInit);
|
|
450
|
+
const pageContext = (0, renderPageAlreadyRouted_js_1.createPageContext)(pageContextInit, false);
|
|
470
451
|
const httpResponse = (0, createHttpResponse_js_1.createHttpResponseFavicon404)();
|
|
471
452
|
(0, utils_js_1.objectAssign)(pageContext, { httpResponse });
|
|
472
453
|
(0, utils_js_1.checkType)(pageContext);
|
|
@@ -31,7 +31,6 @@ __exportStar(require("../../utils/parseUrl.js"), exports);
|
|
|
31
31
|
__exportStar(require("../../utils/parseUrl-extras.js"), exports);
|
|
32
32
|
__exportStar(require("../../utils/slice.js"), exports);
|
|
33
33
|
__exportStar(require("../../utils/sorter.js"), exports);
|
|
34
|
-
__exportStar(require("../../utils/projectInfo.js"), exports);
|
|
35
34
|
__exportStar(require("../../utils/isArray.js"), exports);
|
|
36
35
|
__exportStar(require("../../utils/isObject.js"), exports);
|
|
37
36
|
__exportStar(require("../../utils/objectAssign.js"), exports);
|
|
@@ -11,16 +11,18 @@ const globalContext_js_1 = require("../runtime/globalContext.js");
|
|
|
11
11
|
*/
|
|
12
12
|
async function createDevMiddleware(options = {}) {
|
|
13
13
|
(0, globalContext_js_1.setGlobalContext_isProduction)(false);
|
|
14
|
-
const
|
|
15
|
-
...options
|
|
16
|
-
|
|
17
|
-
...options.viteConfig
|
|
18
|
-
|
|
14
|
+
const optionsMod = {
|
|
15
|
+
...options,
|
|
16
|
+
viteConfig: {
|
|
17
|
+
...options.viteConfig,
|
|
18
|
+
root: options.root ?? options.viteConfig?.root,
|
|
19
|
+
server: {
|
|
20
|
+
...options.viteConfig?.server,
|
|
21
|
+
middlewareMode: options.viteConfig?.server?.middlewareMode ?? true
|
|
22
|
+
}
|
|
19
23
|
}
|
|
20
24
|
};
|
|
21
|
-
|
|
22
|
-
viteConfigFromOptions.root = options.root;
|
|
23
|
-
const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(viteConfigFromOptions, 'dev');
|
|
25
|
+
const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(optionsMod, 'dev');
|
|
24
26
|
const server = await (0, vite_1.createServer)(viteConfigEnhanced);
|
|
25
27
|
const devMiddleware = server.middlewares;
|
|
26
28
|
return { devMiddleware, viteServer: server, viteConfig: server.config };
|
|
@@ -12,7 +12,8 @@ function assertV1Design(pageConfigs, pageFilesAll) {
|
|
|
12
12
|
(0, utils_js_1.assert)(pageConfigs.length > 0);
|
|
13
13
|
const filesV1 = (0, utils_js_1.unique)(pageConfigs
|
|
14
14
|
.map((p) => Object.values(p.configValueSources).map((sources) => sources
|
|
15
|
-
.map((c) => c.
|
|
15
|
+
.map((c) => c.definedAt)
|
|
16
|
+
.map((definedAt) => (definedAt.definedBy ? null : definedAt.filePathAbsoluteUserRootDir))
|
|
16
17
|
.filter(utils_js_1.isNotNullish)
|
|
17
18
|
.map((filePathToShowToUser) => indent + filePathToShowToUser)))
|
|
18
19
|
.flat(2));
|
|
@@ -19,7 +19,6 @@ const assertIsNotBrowser_js_1 = require("../../utils/assertIsNotBrowser.js");
|
|
|
19
19
|
__exportStar(require("../../utils/assert.js"), exports);
|
|
20
20
|
__exportStar(require("../../utils/getFileExtension.js"), exports);
|
|
21
21
|
__exportStar(require("../../utils/isPlainObject.js"), exports);
|
|
22
|
-
__exportStar(require("../../utils/projectInfo.js"), exports);
|
|
23
22
|
__exportStar(require("../../utils/checkType.js"), exports);
|
|
24
23
|
__exportStar(require("../../utils/hasProp.js"), exports);
|
|
25
24
|
__exportStar(require("../../utils/objectAssign.js"), exports);
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getConfigDefinedAt = getConfigDefinedAt;
|
|
7
7
|
exports.getConfigDefinedAtOptional = getConfigDefinedAtOptional;
|
|
8
8
|
exports.getDefinedAtString = getDefinedAtString;
|
|
9
|
+
exports.getDefinedByString = getDefinedByString;
|
|
9
10
|
const utils_js_1 = require("../utils.js");
|
|
10
11
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
11
12
|
const getExportPath_js_1 = require("./getExportPath.js");
|
|
@@ -33,8 +34,10 @@ function getDefinedAtString(definedAtData, configName) {
|
|
|
33
34
|
}
|
|
34
35
|
(0, utils_js_1.assert)(files.length >= 1);
|
|
35
36
|
const definedAtString = files
|
|
36
|
-
.map((
|
|
37
|
-
|
|
37
|
+
.map((definedAt) => {
|
|
38
|
+
if (definedAt.definedBy)
|
|
39
|
+
return getDefinedByString(definedAt, configName);
|
|
40
|
+
const { filePathToShowToUser, fileExportPathToShowToUser } = definedAt;
|
|
38
41
|
let s = filePathToShowToUser;
|
|
39
42
|
const exportPath = (0, getExportPath_js_1.getExportPath)(fileExportPathToShowToUser, configName);
|
|
40
43
|
if (exportPath) {
|
|
@@ -45,3 +48,17 @@ function getDefinedAtString(definedAtData, configName) {
|
|
|
45
48
|
.join(' / ');
|
|
46
49
|
return definedAtString;
|
|
47
50
|
}
|
|
51
|
+
function getDefinedByString(definedAt, configName) {
|
|
52
|
+
if (definedAt.definedBy === 'api') {
|
|
53
|
+
return `API call ${picocolors_1.default.cyan(`${definedAt.operation}({ vikeConfig: { ${configName} } })`)}`;
|
|
54
|
+
}
|
|
55
|
+
const { definedBy } = definedAt;
|
|
56
|
+
if (definedBy === 'cli') {
|
|
57
|
+
return `CLI option ${picocolors_1.default.cyan(`--${configName}`)}`;
|
|
58
|
+
}
|
|
59
|
+
if (definedBy === 'env') {
|
|
60
|
+
return `environment variable ${picocolors_1.default.cyan(`VIKE_CONFIG="{${configName}}"`)}`;
|
|
61
|
+
}
|
|
62
|
+
(0, utils_js_1.checkType)(definedBy);
|
|
63
|
+
(0, utils_js_1.assert)(false);
|
|
64
|
+
}
|
|
@@ -33,7 +33,7 @@ function getConfigValue(pageConfig, configName) {
|
|
|
33
33
|
return {
|
|
34
34
|
type: 'standard',
|
|
35
35
|
value: configValueSource.value,
|
|
36
|
-
definedAtData:
|
|
36
|
+
definedAtData: getDefinedAt(configValueSource)
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
@@ -53,13 +53,16 @@ function mergeCumulative(configValueSources) {
|
|
|
53
53
|
(0, utils_js_1.assert)(configValueSource.configEnv.config === true);
|
|
54
54
|
(0, utils_js_1.assert)(configValueSource.valueIsLoaded);
|
|
55
55
|
value.push(configValueSource.value);
|
|
56
|
-
definedAtData.push(
|
|
56
|
+
definedAtData.push(getDefinedAt(configValueSource));
|
|
57
57
|
});
|
|
58
58
|
return { value, definedAtData };
|
|
59
59
|
}
|
|
60
|
-
function
|
|
60
|
+
function getDefinedAt(configValueSource) {
|
|
61
|
+
const { definedAt } = configValueSource;
|
|
62
|
+
if (definedAt.definedBy)
|
|
63
|
+
return definedAt;
|
|
61
64
|
return {
|
|
62
|
-
filePathToShowToUser:
|
|
63
|
-
fileExportPathToShowToUser:
|
|
65
|
+
filePathToShowToUser: definedAt.filePathToShowToUser,
|
|
66
|
+
fileExportPathToShowToUser: definedAt.fileExportPathToShowToUser
|
|
64
67
|
};
|
|
65
68
|
}
|
|
@@ -14,7 +14,7 @@ function getConfigValueFilePathToShowToUser(definedAtData) {
|
|
|
14
14
|
// A unique file path only exists if the config value isn't cumulative nor computed:
|
|
15
15
|
// - cumulative config values have multiple file paths
|
|
16
16
|
// - computed values don't have any file path
|
|
17
|
-
if (!definedAtData || (0, utils_js_1.isArray)(definedAtData))
|
|
17
|
+
if (!definedAtData || (0, utils_js_1.isArray)(definedAtData) || definedAtData.definedBy)
|
|
18
18
|
return null;
|
|
19
19
|
const { filePathToShowToUser } = definedAtData;
|
|
20
20
|
(0, utils_js_1.assert)(filePathToShowToUser);
|
|
@@ -6,10 +6,6 @@ const utils_js_1 = require("../../utils.js");
|
|
|
6
6
|
const getConfigDefinedAt_js_1 = require("../getConfigDefinedAt.js");
|
|
7
7
|
const parse_1 = require("@brillout/json-serializer/parse");
|
|
8
8
|
const assertPlusFileExport_js_1 = require("../assertPlusFileExport.js");
|
|
9
|
-
function parseConfigValuesSerialized(configValuesSerialized) {
|
|
10
|
-
const configValues = parseConfigValuesSerialized_tmp(configValuesSerialized);
|
|
11
|
-
return configValues;
|
|
12
|
-
}
|
|
13
9
|
function parsePageConfigs(pageConfigsSerialized, pageConfigGlobalSerialized) {
|
|
14
10
|
// pageConfigs
|
|
15
11
|
const pageConfigs = pageConfigsSerialized.map((pageConfigSerialized) => {
|
|
@@ -45,7 +41,7 @@ function assertRouteConfigValue(configValues) {
|
|
|
45
41
|
}
|
|
46
42
|
*/
|
|
47
43
|
}
|
|
48
|
-
function
|
|
44
|
+
function parseConfigValuesSerialized(configValuesSerialized) {
|
|
49
45
|
const configValues = {};
|
|
50
46
|
Object.entries(configValuesSerialized).forEach(([configName, configValueSeriliazed]) => {
|
|
51
47
|
let configValue;
|
|
@@ -102,6 +98,7 @@ function parseValueSerialized(valueSerialized, configName, getDefinedAtFile) {
|
|
|
102
98
|
if (valueSerialized.type === 'plus-file') {
|
|
103
99
|
const definedAtFile = getDefinedAtFile();
|
|
104
100
|
const { exportValues } = valueSerialized;
|
|
101
|
+
(0, utils_js_1.assert)(!definedAtFile.definedBy);
|
|
105
102
|
(0, assertPlusFileExport_js_1.assertPlusFileExport)(exportValues, definedAtFile.filePathToShowToUser, configName);
|
|
106
103
|
let value;
|
|
107
104
|
let valueWasFound = false;
|
|
@@ -52,7 +52,7 @@ function serializeConfigValues(pageConfig, importStatements, filesEnv, isEnvMatc
|
|
|
52
52
|
function getValueSerializedFromSource(configValueSource, configName, importStatements, filesEnv) {
|
|
53
53
|
let valueData;
|
|
54
54
|
if (configValueSource.valueIsLoaded && !configValueSource.valueIsLoadedWithImport) {
|
|
55
|
-
valueData = getValueSerializedWithJson(configValueSource.value, configName, configValueSource.
|
|
55
|
+
valueData = getValueSerializedWithJson(configValueSource.value, configName, configValueSource.definedAt, importStatements, filesEnv, configValueSource.configEnv);
|
|
56
56
|
}
|
|
57
57
|
else {
|
|
58
58
|
valueData = getValueSerializedWithImport(configValueSource, importStatements, filesEnv, configName);
|
|
@@ -103,8 +103,9 @@ function serializeConfigValue(configValueBase, valueData, configName, lines, tab
|
|
|
103
103
|
}
|
|
104
104
|
function getValueSerializedWithImport(configValueSource, importStatements, filesEnv, configName) {
|
|
105
105
|
(0, utils_js_1.assert)(!configValueSource.valueIsFilePath);
|
|
106
|
-
const { valueIsDefinedByPlusValueFile,
|
|
107
|
-
|
|
106
|
+
const { valueIsDefinedByPlusValueFile, definedAt, configEnv } = configValueSource;
|
|
107
|
+
(0, utils_js_1.assert)(!definedAt.definedBy);
|
|
108
|
+
const { filePathAbsoluteVite, fileExportName } = definedAt;
|
|
108
109
|
if (valueIsDefinedByPlusValueFile)
|
|
109
110
|
(0, utils_js_1.assert)(fileExportName === undefined);
|
|
110
111
|
const { importName } = addImportStatement(importStatements, filePathAbsoluteVite, fileExportName || '*', filesEnv, configEnv, configName);
|
|
@@ -231,9 +232,12 @@ function getConfigValuesBase(pageConfig, isEnvMatch, isEager) {
|
|
|
231
232
|
return [...fromComputed, ...fromSources].filter((r) => r !== 'SKIP');
|
|
232
233
|
}
|
|
233
234
|
function getDefinedAtFileSource(source) {
|
|
235
|
+
const { definedAt } = source;
|
|
236
|
+
if (definedAt.definedBy)
|
|
237
|
+
return definedAt;
|
|
234
238
|
const definedAtFile = {
|
|
235
|
-
filePathToShowToUser:
|
|
236
|
-
fileExportPathToShowToUser:
|
|
239
|
+
filePathToShowToUser: definedAt.filePathToShowToUser,
|
|
240
|
+
fileExportPathToShowToUser: definedAt.fileExportPathToShowToUser
|
|
237
241
|
};
|
|
238
242
|
return definedAtFile;
|
|
239
243
|
}
|
|
@@ -62,11 +62,11 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
|
|
|
62
62
|
if (!pageRoute) {
|
|
63
63
|
const { routeFilesystem } = pageConfig;
|
|
64
64
|
(0, utils_js_1.assert)(routeFilesystem);
|
|
65
|
-
const { routeString,
|
|
65
|
+
const { routeString, definedAtLocation } = routeFilesystem;
|
|
66
66
|
(0, utils_js_1.assert)(routeFilesystem.routeString.startsWith('/'));
|
|
67
67
|
pageRoute = {
|
|
68
68
|
pageId,
|
|
69
|
-
routeFilesystemDefinedBy:
|
|
69
|
+
routeFilesystemDefinedBy: definedAtLocation,
|
|
70
70
|
comesFromV1PageConfig,
|
|
71
71
|
routeString,
|
|
72
72
|
routeDefinedAtString: null,
|
package/dist/cjs/utils/assert.js
CHANGED
|
@@ -17,7 +17,7 @@ const assertSingleInstance_js_1 = require("./assertSingleInstance.js");
|
|
|
17
17
|
const createErrorWithCleanStackTrace_js_1 = require("./createErrorWithCleanStackTrace.js");
|
|
18
18
|
const getGlobalObject_js_1 = require("./getGlobalObject.js");
|
|
19
19
|
const isObject_js_1 = require("./isObject.js");
|
|
20
|
-
const
|
|
20
|
+
const PROJECT_VERSION_js_1 = require("./PROJECT_VERSION.js");
|
|
21
21
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
22
22
|
const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('utils/assert.ts', {
|
|
23
23
|
alreadyLogged: new Set(),
|
|
@@ -34,7 +34,7 @@ const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('utils/assert.ts'
|
|
|
34
34
|
});
|
|
35
35
|
(0, assertSingleInstance_js_1.assertSingleInstance_onAssertModuleLoad)();
|
|
36
36
|
const projectTag = `[vike]`;
|
|
37
|
-
const projectTagWithVersion = `[vike@${
|
|
37
|
+
const projectTagWithVersion = `[vike@${PROJECT_VERSION_js_1.PROJECT_VERSION}]`;
|
|
38
38
|
const bugTag = 'Bug';
|
|
39
39
|
const numberOfStackTraceLinesToRemove = 2;
|
|
40
40
|
function assert(condition, debugInfo) {
|
|
@@ -47,7 +47,7 @@ function assert(condition, debugInfo) {
|
|
|
47
47
|
const debugInfoSerialized = typeof debugInfo === 'string' ? debugInfo : JSON.stringify(debugInfo);
|
|
48
48
|
return picocolors_1.default.dim(`Debug info (for Vike maintainers; you can ignore this): ${debugInfoSerialized}`);
|
|
49
49
|
})();
|
|
50
|
-
const link = picocolors_1.default.
|
|
50
|
+
const link = picocolors_1.default.underline('https://github.com/vikejs/vike/issues/new?template=bug.yml');
|
|
51
51
|
let errMsg = [
|
|
52
52
|
`You stumbled upon a Vike bug. Go to ${link} and copy-paste this error. A maintainer will fix the bug (usually within 24 hours).`,
|
|
53
53
|
debugStr
|
|
@@ -61,7 +61,7 @@ function assert(condition, debugInfo) {
|
|
|
61
61
|
globalObject.onBeforeLog?.();
|
|
62
62
|
throw internalError;
|
|
63
63
|
}
|
|
64
|
-
function assertUsage(condition, errMsg, { showStackTrace } = {}) {
|
|
64
|
+
function assertUsage(condition, errMsg, { showStackTrace, exitOnError } = {}) {
|
|
65
65
|
if (condition)
|
|
66
66
|
return;
|
|
67
67
|
showStackTrace = showStackTrace || globalObject.alwaysShowStackTrace;
|
|
@@ -73,7 +73,13 @@ function assertUsage(condition, errMsg, { showStackTrace } = {}) {
|
|
|
73
73
|
globalObject.showStackTraceList.add(usageError);
|
|
74
74
|
}
|
|
75
75
|
globalObject.onBeforeLog?.();
|
|
76
|
-
|
|
76
|
+
if (!exitOnError) {
|
|
77
|
+
throw usageError;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
console.error(showStackTrace ? usageError : errMsg);
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
77
83
|
}
|
|
78
84
|
function getProjectError(errMsg) {
|
|
79
85
|
errMsg = addWhitespace(errMsg);
|
|
@@ -187,6 +193,7 @@ function overwriteAssertProductionLogger(logger) {
|
|
|
187
193
|
function isBug(err) {
|
|
188
194
|
return String(err).includes(`[${bugTag}]`);
|
|
189
195
|
}
|
|
196
|
+
// Called upon `DEBUG=vike:error`
|
|
190
197
|
function setAlwaysShowStackTrace() {
|
|
191
198
|
globalObject.alwaysShowStackTrace = true;
|
|
192
199
|
}
|
|
@@ -6,15 +6,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.assertSingleInstance_onClientEntryServerRouting = assertSingleInstance_onClientEntryServerRouting;
|
|
7
7
|
exports.assertSingleInstance_onClientEntryClientRouting = assertSingleInstance_onClientEntryClientRouting;
|
|
8
8
|
exports.assertSingleInstance_onAssertModuleLoad = assertSingleInstance_onAssertModuleLoad;
|
|
9
|
-
// -
|
|
9
|
+
// - Show warning if there are two different Vike versions loaded
|
|
10
10
|
// - Show warning if entry of Client Routing and entry of Server Routing are both loaded
|
|
11
|
-
// - Show warning if
|
|
11
|
+
// - Show warning if Vike is loaded twice
|
|
12
12
|
const unique_js_1 = require("./unique.js");
|
|
13
13
|
const getGlobalObject_js_1 = require("./getGlobalObject.js");
|
|
14
|
-
const projectInfo_js_1 = require("./projectInfo.js");
|
|
15
14
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const PROJECT_VERSION_js_1 = require("./PROJECT_VERSION.js");
|
|
16
|
+
/* Use original assertWarning() after all CJS is removed from node_modules/vike/dist/
|
|
17
|
+
import { assertWarning } from './assert.js'
|
|
18
18
|
*/
|
|
19
19
|
const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('utils/assertSingleInstance.ts', {
|
|
20
20
|
instances: [],
|
|
@@ -25,9 +25,10 @@ const clientNotSingleInstance = 'Client runtime loaded twice https://vike.dev/cl
|
|
|
25
25
|
function assertSingleInstance() {
|
|
26
26
|
{
|
|
27
27
|
const versions = (0, unique_js_1.unique)(globalObject.instances);
|
|
28
|
-
|
|
29
|
-
//
|
|
30
|
-
|
|
28
|
+
assertWarning(versions.length <= 1,
|
|
29
|
+
// Do *NOT* patch Vike to remove this warning: you *will* eventually encounter the issues listed at https://vike.dev/warning/version-mismatch
|
|
30
|
+
// - This happened before: https://github.com/vikejs/vike/issues/1108#issuecomment-1719061509
|
|
31
|
+
`vike@${picocolors_1.default.bold(versions[0])} and vike@${picocolors_1.default.bold(versions[1])} loaded which is highly discouraged, see ${picocolors_1.default.underline('https://vike.dev/warning/version-mismatch')}`, { onlyOnce: true, showStackTrace: false });
|
|
31
32
|
}
|
|
32
33
|
if (globalObject.checkSingleInstance && globalObject.instances.length > 1) {
|
|
33
34
|
/*/ Not sure whether circular dependency can cause problems? In principle not since client-side code is ESM.
|
|
@@ -67,21 +68,14 @@ function assertSingleInstance_onClientEntryClientRouting(isProduction) {
|
|
|
67
68
|
}
|
|
68
69
|
// Called by utils/assert.ts which is (most certainly) loaded by all entries. That way we don't have to call a callback for every entry. (There are a lot of entries: `client/router/`, `client/`, `node/runtime/`, `node/plugin/`, `node/cli`.)
|
|
69
70
|
function assertSingleInstance_onAssertModuleLoad() {
|
|
70
|
-
globalObject.instances.push(
|
|
71
|
+
globalObject.instances.push(PROJECT_VERSION_js_1.PROJECT_VERSION);
|
|
71
72
|
assertSingleInstance();
|
|
72
73
|
}
|
|
73
|
-
function assertUsage(condition, errorMessage) {
|
|
74
|
-
if (condition) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
const errMsg = `[vike][Wrong Usage] ${errorMessage}`;
|
|
78
|
-
throw new Error(errMsg);
|
|
79
|
-
}
|
|
80
74
|
function assertWarning(condition, errorMessage, { onlyOnce, showStackTrace }) {
|
|
81
75
|
if (condition) {
|
|
82
76
|
return;
|
|
83
77
|
}
|
|
84
|
-
const msg = `[
|
|
78
|
+
const msg = `[Vike][Warning] ${errorMessage}`;
|
|
85
79
|
if (onlyOnce) {
|
|
86
80
|
const { alreadyLogged } = globalObject;
|
|
87
81
|
const key = onlyOnce === true ? msg : onlyOnce;
|
package/dist/cjs/utils/debug.js
CHANGED
|
@@ -16,6 +16,8 @@ const isArray_js_1 = require("./isArray.js");
|
|
|
16
16
|
// Avoid this to be loaded in the browser. For isomorphic code: instead of `import { createDebugger } from './utils.js'`, use `globalThis.createDebugger()`.
|
|
17
17
|
(0, assert_js_1.assert)(!(0, isBrowser_js_1.isBrowser)());
|
|
18
18
|
globalThis.__brillout_debug_createDebugger = createDebugger;
|
|
19
|
+
// We purposely read process.env.DEBUG early, in order to avoid users from the temptation to set process.env.DEBUG with JavaScript, since reading & writing process.env.DEBUG dynamically leads to inconsistencies: for example https://github.com/vikejs/vike/issues/2239
|
|
20
|
+
const DEBUG = getDEBUG() ?? '';
|
|
19
21
|
const flags = [
|
|
20
22
|
'vike:crawl',
|
|
21
23
|
'vike:error',
|
|
@@ -150,7 +152,6 @@ function assertFlagsActivated() {
|
|
|
150
152
|
});
|
|
151
153
|
}
|
|
152
154
|
function getFlagsActivated() {
|
|
153
|
-
const DEBUG = getDEBUG() ?? '';
|
|
154
155
|
const flagsActivated = DEBUG.match(flagRegex) ?? [];
|
|
155
156
|
const all = DEBUG.includes('vike:*');
|
|
156
157
|
return { flagsActivated, all };
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getRandomId = getRandomId;
|
|
4
4
|
const assert_js_1 = require("./assert.js");
|
|
5
5
|
// https://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript
|
|
6
|
-
function getRandomId(length) {
|
|
6
|
+
function getRandomId(length = 12) {
|
|
7
7
|
let randomId = '';
|
|
8
8
|
while (randomId.length < length) {
|
|
9
9
|
randomId += Math.random().toString(36).slice(2);
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeHeaders = normalizeHeaders;
|
|
4
4
|
const isObject_js_1 = require("./isObject.js");
|
|
5
5
|
function normalizeHeaders(
|
|
6
|
-
/* This type is
|
|
6
|
+
/* This type is too strict which is annoying: cannot pass `string[][]` because it doesn't match the more precise type `[string,string][]`.
|
|
7
7
|
headersOriginal ConstructorParameters<typeof Headers>[0]
|
|
8
8
|
*/
|
|
9
9
|
headersOriginal) {
|
|
@@ -5,9 +5,14 @@ const assert_js_1 = require("./assert.js");
|
|
|
5
5
|
// Same as Object.assign() but:
|
|
6
6
|
// - With type inference
|
|
7
7
|
// - Preserves property descriptors, which we need for preserving the getters added by getPageContextUrlComputed()
|
|
8
|
-
function objectAssign(obj, objAddendum) {
|
|
8
|
+
function objectAssign(obj, objAddendum, objAddendumCanBePageContextObject) {
|
|
9
9
|
if (objAddendum) {
|
|
10
|
-
|
|
10
|
+
if (!objAddendumCanBePageContextObject) {
|
|
11
|
+
// We only need this assert() in the rare case when the user is expected to mutate `pageContext` after the Vike hook was executed (and its promise resolved).
|
|
12
|
+
// - The only use case I can think of is the user mutating `pageContext` after the onRenderClient() promise resolved (which can happen when client-side rendering finishes after onRenderClient() resolves). In that case, having Vike await async Vike hooks isn't enough.
|
|
13
|
+
// - IIRC this assert() was mostly needed for preserving the getters added by getPageContextUrlComputed() but we don't need this anymore.
|
|
14
|
+
(0, assert_js_1.assert)(!('_isPageContextObject' in objAddendum));
|
|
15
|
+
}
|
|
11
16
|
Object.defineProperties(obj, Object.getOwnPropertyDescriptors(objAddendum));
|
|
12
17
|
}
|
|
13
18
|
}
|
|
@@ -94,6 +94,7 @@ function modifyUrlPathname(url, modifier) {
|
|
|
94
94
|
function removeUrlOrigin(url) {
|
|
95
95
|
const { origin, pathnameOriginal, searchOriginal, hashOriginal } = (0, parseUrl_js_1.parseUrl)(url, '/');
|
|
96
96
|
const urlModified = (0, parseUrl_js_1.createUrlFromComponents)(null, pathnameOriginal, searchOriginal, hashOriginal);
|
|
97
|
+
(0, assert_js_1.assert)(urlModified.startsWith('/'));
|
|
97
98
|
return { urlModified, origin };
|
|
98
99
|
}
|
|
99
100
|
function setUrlOrigin(url, origin) {
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export { createPageContext };
|
|
2
2
|
declare function createPageContext(urlOriginal: string): Promise<{
|
|
3
|
+
_isPageContextObject: boolean;
|
|
4
|
+
isClientSide: boolean;
|
|
5
|
+
isPrerendering: boolean;
|
|
3
6
|
urlOriginal: string;
|
|
4
7
|
_objectCreatedByVike: boolean;
|
|
5
8
|
_urlHandler: null;
|
|
@@ -11,7 +14,6 @@ declare function createPageContext(urlOriginal: string): Promise<{
|
|
|
11
14
|
_allPageIds: string[];
|
|
12
15
|
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
13
16
|
_onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
|
|
14
|
-
_isPageContextObject: boolean;
|
|
15
17
|
} & {
|
|
16
18
|
urlParsed: import("./utils.js").UrlPublic;
|
|
17
19
|
urlPathname: string;
|
|
@@ -4,7 +4,6 @@ import { getPageContextUrlComputed } from '../../shared/getPageContextUrlCompute
|
|
|
4
4
|
import { loadPageRoutes } from '../../shared/route/loadPageRoutes.js';
|
|
5
5
|
import { getBaseServer } from './getBaseServer.js';
|
|
6
6
|
import { assert, isBaseServer, objectAssign } from './utils.js';
|
|
7
|
-
// TODO/now: can we avoid optimizeDeps.exclude of client runtime?
|
|
8
7
|
// @ts-ignore
|
|
9
8
|
import * as virtualFileExports from 'virtual:vike:importUserCode:client:client-routing';
|
|
10
9
|
const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal } = getPageConfigsRuntime(virtualFileExports);
|
|
@@ -13,6 +12,9 @@ async function createPageContext(urlOriginal) {
|
|
|
13
12
|
const baseServer = getBaseServer();
|
|
14
13
|
assert(isBaseServer(baseServer));
|
|
15
14
|
const pageContext = {
|
|
15
|
+
_isPageContextObject: true,
|
|
16
|
+
isClientSide: true,
|
|
17
|
+
isPrerendering: false,
|
|
16
18
|
urlOriginal,
|
|
17
19
|
_objectCreatedByVike: true,
|
|
18
20
|
_urlHandler: null,
|
|
@@ -23,8 +25,7 @@ async function createPageContext(urlOriginal) {
|
|
|
23
25
|
_pageConfigGlobal: pageConfigGlobal,
|
|
24
26
|
_allPageIds: allPageIds,
|
|
25
27
|
_pageRoutes: pageRoutes,
|
|
26
|
-
_onBeforeRouteHook: onBeforeRouteHook
|
|
27
|
-
_isPageContextObject: true
|
|
28
|
+
_onBeforeRouteHook: onBeforeRouteHook
|
|
28
29
|
};
|
|
29
30
|
const pageContextUrlComputed = getPageContextUrlComputed(pageContext);
|
|
30
31
|
objectAssign(pageContext, pageContextUrlComputed);
|
|
@@ -276,7 +276,7 @@ async function renderPageClientSide(renderArgs) {
|
|
|
276
276
|
if ('err' in args) {
|
|
277
277
|
const { err } = args;
|
|
278
278
|
assert(!('errorWhileRendering' in pageContext));
|
|
279
|
-
pageContext
|
|
279
|
+
objectAssign(pageContext, { errorWhileRendering: err });
|
|
280
280
|
if (isAbortError(err)) {
|
|
281
281
|
const errAbort = err;
|
|
282
282
|
logAbortErrorHandled(err, !import.meta.env.DEV, pageContext);
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
export { getPageContext };
|
|
2
2
|
declare function getPageContext(): Promise<{
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
_isPageContextObject: boolean;
|
|
4
|
+
isPrerendering: boolean;
|
|
5
|
+
isClientSide: boolean;
|
|
6
6
|
isHydration: true;
|
|
7
7
|
isBackwardNavigation: null;
|
|
8
8
|
_hasPageContextFromServer: true;
|
|
9
9
|
_hasPageContextFromClient: false;
|
|
10
|
+
} & {
|
|
11
|
+
pageId: string;
|
|
12
|
+
routeParams: Record<string, string>;
|
|
10
13
|
} & {
|
|
11
14
|
_pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
|
|
12
15
|
_pageConfigs: import("../../__internal/index.js").PageConfig[];
|