vike 0.4.191-commit-349a3eb → 0.4.191-commit-e99a55e

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.
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPagesAndRoutes = exports.route = void 0;
3
+ exports.getPageFilesAllSafe = exports.getPagesAndRoutes = exports.route = void 0;
4
4
  const index_js_1 = require("../shared/route/index.js");
5
+ const getPageFiles_js_1 = require("../shared/getPageFiles.js");
5
6
  const globalContext_js_1 = require("../node/runtime/globalContext.js");
6
7
  const assertNodeEnv_js_1 = require("../utils/assertNodeEnv.js");
7
- const assert_js_1 = require("../utils/assert.js");
8
8
  const renderPageAlreadyRouted_js_1 = require("../node/runtime/renderPage/renderPageAlreadyRouted.js");
9
9
  /**
10
10
  * Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel}
@@ -14,11 +14,10 @@ const renderPageAlreadyRouted_js_1 = require("../node/runtime/renderPage/renderP
14
14
  */
15
15
  async function getPagesAndRoutes() {
16
16
  (0, assertNodeEnv_js_1.handleNodeEnv_vitePluginVercel)();
17
- await (0, globalContext_js_1.initGlobalContext)(true);
18
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
19
- (0, assert_js_1.assert)(globalContext.isProduction === true);
20
17
  const renderContext = await (0, renderPageAlreadyRouted_js_1.getRenderContext)();
21
- const { pageFilesAll, pageConfigs, allPageIds, pageRoutes } = renderContext;
18
+ const {
19
+ //
20
+ pageRoutes, pageFilesAll, pageConfigs, allPageIds } = renderContext;
22
21
  return {
23
22
  pageRoutes,
24
23
  pageFilesAll,
@@ -27,6 +26,15 @@ async function getPagesAndRoutes() {
27
26
  };
28
27
  }
29
28
  exports.getPagesAndRoutes = getPagesAndRoutes;
29
+ // TODO: make it cleaner once the internal refactoring about global configs is done.
30
+ // Demo usage: https://github.com/vikejs/vike/pull/1823
31
+ async function getPageFilesAllSafe(isProduction) {
32
+ await (0, globalContext_js_1.initGlobalContext_getGlobalContextAsync)(isProduction);
33
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
34
+ const pageFilesAll = await (0, getPageFiles_js_1.getPageFilesAll)(false, globalContext.isProduction);
35
+ return pageFilesAll;
36
+ }
37
+ exports.getPageFilesAllSafe = getPageFilesAllSafe;
30
38
  async function route(pageContext) {
31
39
  const pageContextFromRoute = await (0, index_js_1.route)(pageContext);
32
40
  // Old interface
@@ -100,7 +100,7 @@ async function triggerFullBuild(config, configVike, bundle) {
100
100
  }
101
101
  }
102
102
  function abortViteBuildSsr(configVike) {
103
- if (!configVike.disableAutoFullBuild && (0, isViteCliCall_js_1.isViteCliCall)() && (0, isViteCliCall_js_1.getViteConfigFromCli)()?.build.ssr) {
103
+ if (configVike.disableAutoFullBuild !== true && (0, isViteCliCall_js_1.isViteCliCall)() && (0, isViteCliCall_js_1.getViteConfigFromCli)()?.build.ssr) {
104
104
  (0, utils_js_1.assertWarning)(false, `The CLI call ${picocolors_1.default.cyan('$ vite build --ssr')} is superfluous since ${picocolors_1.default.cyan('$ vite build')} also builds the server-side. If you want two separate build steps then use https://vike.dev/disableAutoFullBuild or use Vite's ${picocolors_1.default.cyan('build()')} API.`, { onlyOnce: true });
105
105
  process.exit(0);
106
106
  }
@@ -108,7 +108,10 @@ function abortViteBuildSsr(configVike) {
108
108
  function isDisabled(configVike) {
109
109
  const { disableAutoFullBuild } = configVike;
110
110
  if (disableAutoFullBuild === null || disableAutoFullBuild === 'prerender') {
111
- // TODO/v1-release: also enable autoFullBuild when running Vite's build() API
111
+ // TODO/v1-release: remove autoFullBuild for both Vite's build() API and Vite's CLI
112
+ // - Tell users to use `$ vike build` instead of `$ vite build`
113
+ // - Remove the whole writeBundle() hook logic
114
+ // - make `$ vite build` only build the client-side
112
115
  return !(0, isViteCliCall_js_1.isViteCliCall)();
113
116
  }
114
117
  else {
@@ -18,6 +18,11 @@ function setGlobalContext() {
18
18
  const isDev = (0, utils_js_1.isDev3)(env);
19
19
  (0, globalContext_js_1.setGlobalContext_isDev)(isDev);
20
20
  }
21
+ },
22
+ configResolved(config) {
23
+ const { outDirRoot } = (0, utils_js_1.getOutDirs)(config);
24
+ (0, utils_js_1.assertFilePathAbsoluteFilesystem)(outDirRoot); // Needed for loadImportBuild(outDir) of @brillout/vite-plugin-server-entry
25
+ (0, globalContext_js_1.setGlobalContext_viteConfig)(config, outDirRoot);
21
26
  }
22
27
  };
23
28
  }
@@ -83,7 +83,8 @@ async function runPrerenderFromAutoFullBuild(options) {
83
83
  exports.runPrerenderFromAutoFullBuild = runPrerenderFromAutoFullBuild;
84
84
  async function runPrerender(options, manuallyTriggered) {
85
85
  checkOutdatedOptions(options);
86
- (0, getHook_js_1.setIsPrerenderering)();
86
+ (0, globalContext_js_1.setGlobalContext_isPrerendering)();
87
+ (0, getHook_js_1.getHook_setIsPrerenderering)();
87
88
  const logLevel = !!options.onPagePrerender ? 'warn' : 'info';
88
89
  if (logLevel === 'info') {
89
90
  console.log(`${picocolors_1.default.cyan(`vike v${utils_js_1.projectInfo.projectVersion}`)} ${picocolors_1.default.green('pre-rendering HTML...')}`);
@@ -91,10 +92,9 @@ async function runPrerender(options, manuallyTriggered) {
91
92
  (0, utils_js_1.handleNodeEnv_prerender)();
92
93
  await disableReactStreaming();
93
94
  const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, 'vike pre-rendering', 'production');
94
- (0, globalContext_js_1.setGlobalContext_prerender)(viteConfig);
95
95
  assertLoadedConfig(viteConfig, options);
96
96
  const configVike = await (0, getConfigVike_js_1.getConfigVike)(viteConfig);
97
- const { outDirClient, outDirRoot } = (0, utils_js_1.getOutDirs)(viteConfig);
97
+ const { outDirClient } = (0, utils_js_1.getOutDirs)(viteConfig);
98
98
  const { root } = viteConfig;
99
99
  const prerenderConfig = configVike.prerender;
100
100
  if (!prerenderConfig) {
@@ -105,8 +105,7 @@ async function runPrerender(options, manuallyTriggered) {
105
105
  }
106
106
  const { partial = false, noExtraDir = false, parallel = true } = prerenderConfig || {};
107
107
  const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, os_1.cpus)().length : parallel);
108
- (0, utils_js_1.assertFilePathAbsoluteFilesystem)(outDirRoot); // Needed for loadImportBuild(outDir) of @brillout/vite-plugin-server-entry
109
- await (0, globalContext_js_1.initGlobalContext)(true, outDirRoot);
108
+ await (0, globalContext_js_1.initGlobalContext_runPrerender)();
110
109
  const renderContext = await (0, renderPageAlreadyRouted_js_1.getRenderContext)();
111
110
  renderContext.pageFilesAll.forEach(assertExportNames);
112
111
  const prerenderContext = {};
@@ -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_isDev = exports.setGlobalContext_viteDevServer = exports.getViteConfig = exports.getViteDevServer = exports.getGlobalContext = exports.initGlobalContext = exports.getGlobalContextAsync = exports.getGlobalContextSync = void 0;
6
+ exports.setGlobalContext_isPrerendering = exports.setGlobalContext_isDev = exports.setGlobalContext_viteConfig = exports.setGlobalContext_viteDevServer = exports.initGlobalContext_getGlobalContextAsync = exports.initGlobalContext_runPrerender = exports.initGlobalContext_renderPage = exports.getRuntimeManifest = exports.getViteConfig = exports.getViteDevServer = exports.getGlobalContext = 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");
@@ -12,10 +12,13 @@ const getConfigVike_js_1 = require("../shared/getConfigVike.js");
12
12
  const assertRuntimeManifest_js_1 = require("../shared/assertRuntimeManifest.js");
13
13
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
14
14
  const getPageFilesExports_js_1 = require("./page-files/getPageFilesExports.js");
15
- let resolveGlobalContext;
16
- const globalObject = (0, utils_js_1.getGlobalObject)('globalContext.ts', {
17
- globalContextPromise: new Promise((r) => (resolveGlobalContext = r))
18
- });
15
+ const globalObject = (0, utils_js_1.getGlobalObject)('globalContext.ts', (() => {
16
+ const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = (0, utils_js_1.genPromise)();
17
+ return {
18
+ viteDevServerPromise,
19
+ viteDevServerPromiseResolve
20
+ };
21
+ })());
19
22
  function getGlobalContext() {
20
23
  (0, utils_js_1.assert)(globalObject.globalContext);
21
24
  return globalObject.globalContext;
@@ -28,10 +31,12 @@ function getGlobalContextSync() {
28
31
  }
29
32
  exports.getGlobalContextSync = getGlobalContextSync;
30
33
  /** @experimental https://vike.dev/getGlobalContext */
31
- async function getGlobalContextAsync() {
32
- await globalObject.globalContextPromise;
33
- (0, utils_js_1.assert)(globalObject.globalContext);
34
- return makePublic(globalObject.globalContext);
34
+ async function getGlobalContextAsync(isProduction) {
35
+ (0, utils_js_1.assertUsage)(typeof isProduction === 'boolean', `[getGlobalContextAsync(isProduction)] Argument ${picocolors_1.default.cyan('isProduction')} ${isProduction === undefined ? 'is missing' : `should be ${picocolors_1.default.cyan('true')} or ${picocolors_1.default.cyan('false')}`}`);
36
+ await initGlobalContext_getGlobalContextAsync(isProduction);
37
+ const { globalContext } = globalObject;
38
+ (0, utils_js_1.assert)(globalContext);
39
+ return makePublic(globalContext);
35
40
  }
36
41
  exports.getGlobalContextAsync = getGlobalContextAsync;
37
42
  function makePublic(globalContext) {
@@ -61,40 +66,84 @@ function makePublic(globalContext) {
61
66
  function setGlobalContext_viteDevServer(viteDevServer) {
62
67
  if (globalObject.viteDevServer)
63
68
  return;
64
- (0, utils_js_1.assert)(!globalObject.globalContext);
65
- globalObject.viteConfig = viteDevServer.config;
69
+ assertIsNotInitilizedYet();
70
+ (0, utils_js_1.assert)(globalObject.viteConfig);
66
71
  globalObject.viteDevServer = viteDevServer;
72
+ globalObject.viteDevServerPromiseResolve(viteDevServer);
67
73
  eagerlyLoadUserFiles();
68
74
  }
69
75
  exports.setGlobalContext_viteDevServer = setGlobalContext_viteDevServer;
76
+ function setGlobalContext_viteConfig(viteConfig, outDirRoot) {
77
+ if (globalObject.viteConfig)
78
+ return;
79
+ assertIsNotInitilizedYet();
80
+ globalObject.viteConfig = viteConfig;
81
+ globalObject.outDirRoot = outDirRoot;
82
+ }
83
+ exports.setGlobalContext_viteConfig = setGlobalContext_viteConfig;
84
+ function assertIsNotInitilizedYet() {
85
+ // In develpoment, globalObject.viteDevServer always needs to be awaited for before initializing globalObject.globalContext
86
+ (0, utils_js_1.assert)(!globalObject.globalContext);
87
+ }
70
88
  function setGlobalContext_isDev(isDev) {
71
89
  globalObject.isDev = isDev;
72
90
  }
73
91
  exports.setGlobalContext_isDev = setGlobalContext_isDev;
92
+ function setGlobalContext_isPrerendering() {
93
+ globalObject.isPrerendering = true;
94
+ }
95
+ exports.setGlobalContext_isPrerendering = setGlobalContext_isPrerendering;
74
96
  function getViteDevServer() {
75
97
  return globalObject.viteDevServer ?? null;
76
98
  }
77
99
  exports.getViteDevServer = getViteDevServer;
78
- function setGlobalContext_prerender(viteConfig) {
79
- if (globalObject.viteConfig)
80
- return;
81
- (0, utils_js_1.assert)(!globalObject.globalContext);
82
- globalObject.viteConfig = viteConfig;
83
- }
84
- exports.setGlobalContext_prerender = setGlobalContext_prerender;
85
100
  function getViteConfig() {
86
101
  return globalObject.viteConfig ?? null;
87
102
  }
88
103
  exports.getViteConfig = getViteConfig;
89
- async function initGlobalContext(isPrerendering = false, outDir) {
90
- if (globalObject.globalContext)
104
+ async function initGlobalContext_renderPage() {
105
+ await initGlobalContext(!globalObject.isDev);
106
+ }
107
+ exports.initGlobalContext_renderPage = initGlobalContext_renderPage;
108
+ async function initGlobalContext_runPrerender() {
109
+ (0, utils_js_1.assert)(globalObject.isPrerendering);
110
+ (0, utils_js_1.assert)(globalObject.viteConfig);
111
+ (0, utils_js_1.assert)(globalObject.outDirRoot);
112
+ // We assume initGlobalContext_runPrerender() to be called before:
113
+ // - initGlobalContext_renderPage()
114
+ // - initGlobalContext_getGlobalContextAsync()
115
+ (0, utils_js_1.assert)(!globalObject.globalContext);
116
+ await initGlobalContext(true);
117
+ }
118
+ exports.initGlobalContext_runPrerender = initGlobalContext_runPrerender;
119
+ async function initGlobalContext_getGlobalContextAsync(isProduction) {
120
+ if (!isProduction) {
121
+ const waitFor = 20;
122
+ const timeout = setTimeout(() => {
123
+ (0, utils_js_1.assertWarning)(false, `Vite's development server still not created after ${waitFor} seconds.`, {
124
+ onlyOnce: false,
125
+ showStackTrace: true
126
+ });
127
+ }, waitFor * 1000);
128
+ await globalObject.viteDevServerPromise;
129
+ clearTimeout(timeout);
130
+ }
131
+ await initGlobalContext(isProduction);
132
+ }
133
+ exports.initGlobalContext_getGlobalContextAsync = initGlobalContext_getGlobalContextAsync;
134
+ async function initGlobalContext(isProduction) {
135
+ if (globalObject.globalContext) {
136
+ (0, utils_js_1.assert)(globalObject.globalContext.isProduction === isProduction);
137
+ // We assume setGlobalContext_isPrerendering() is called before initGlobalContext()
138
+ (0, utils_js_1.assert)(globalObject.globalContext.isPrerendering === (globalObject.isPrerendering ?? false));
91
139
  return;
92
- const { viteDevServer, viteConfig, isDev } = globalObject;
140
+ }
141
+ const { viteDevServer, viteConfig, isDev, isPrerendering } = globalObject;
93
142
  (0, utils_js_1.assertNodeEnv_runtime)(isDev ?? false);
94
- if (isDev) {
143
+ if (!isProduction) {
95
144
  (0, utils_js_1.assert)(viteConfig);
96
- (0, utils_js_1.assert)(!isPrerendering);
97
145
  (0, utils_js_1.assert)(viteDevServer);
146
+ (0, utils_js_1.assert)(!isPrerendering);
98
147
  const configVike = await (0, getConfigVike_js_1.getConfigVike)(viteConfig);
99
148
  const pluginManifest = getRuntimeManifest(configVike);
100
149
  globalObject.globalContext = {
@@ -113,7 +162,7 @@ async function initGlobalContext(isPrerendering = false, outDir) {
113
162
  };
114
163
  }
115
164
  else {
116
- const buildEntries = await (0, loadImportBuild_js_1.loadImportBuild)(outDir);
165
+ const buildEntries = await (0, loadImportBuild_js_1.loadImportBuild)(globalObject.outDirRoot);
117
166
  assertBuildEntries(buildEntries, isPrerendering ?? false);
118
167
  const { pageFiles, assetsManifest, pluginManifest } = buildEntries;
119
168
  (0, getPageFiles_js_1.setPageFiles)(pageFiles);
@@ -149,9 +198,7 @@ async function initGlobalContext(isPrerendering = false, outDir) {
149
198
  globalObject.globalContext = globalContext;
150
199
  }
151
200
  }
152
- resolveGlobalContext(globalObject.globalContext);
153
201
  }
154
- exports.initGlobalContext = initGlobalContext;
155
202
  function getRuntimeManifest(configVike) {
156
203
  const { includeAssetsImportedByServer, baseServer, baseAssets, redirects, trailingSlash, disableUrlNormalization } = configVike;
157
204
  const manifest = {
@@ -67,12 +67,12 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
67
67
  // Prepare context
68
68
  let renderContext;
69
69
  try {
70
- await (0, globalContext_js_1.initGlobalContext)();
70
+ await (0, globalContext_js_1.initGlobalContext_renderPage)();
71
71
  renderContext = await (0, renderPageAlreadyRouted_js_1.getRenderContext)();
72
72
  }
73
73
  catch (err) {
74
- // Errors are expected since assertUsage() is used in both initGlobalContext() and getRenderContext().
75
- // initGlobalContext() and getRenderContext() don't call any user hooks => err isn't thrown from user code
74
+ // Errors are expected since assertUsage() is used in both initGlobalContext_renderPage() and getRenderContext().
75
+ // initGlobalContext_renderPage() and getRenderContext() don't call any user hooks => err isn't thrown from user code.
76
76
  (0, utils_js_1.assert)(!(0, abort_js_1.isAbortError)(err));
77
77
  (0, loggerRuntime_js_1.logRuntimeError)(err, httpRequestId);
78
78
  const pageContextHttpResponseNull = getPageContextHttpResponseNullWithError(err, pageContextInit);
@@ -75,3 +75,4 @@ __exportStar(require("../../utils/normalizeHeaders.js"), exports);
75
75
  __exportStar(require("../../utils/isVikeReactApp.js"), exports);
76
76
  __exportStar(require("../../utils/getPropAccessNotation.js"), exports);
77
77
  __exportStar(require("../../utils/PROJECT_VERSION.js"), exports);
78
+ __exportStar(require("../../utils/genPromise.js"), exports);
@@ -3,15 +3,13 @@ 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.getHookTimeoutDefault = exports.setIsPrerenderering = exports.assertHook = exports.getHookFromPageConfigGlobal = exports.getHookFromPageConfig = exports.getHook = void 0;
6
+ exports.getHookTimeoutDefault = exports.getHook_setIsPrerenderering = exports.assertHook = exports.getHookFromPageConfigGlobal = exports.getHookFromPageConfig = exports.getHook = void 0;
7
7
  const getGlobalObject_js_1 = require("../../utils/getGlobalObject.js");
8
8
  const helpers_js_1 = require("../page-configs/helpers.js");
9
9
  const getConfigValue_js_1 = require("../page-configs/getConfigValue.js");
10
10
  const utils_js_1 = require("../utils.js");
11
11
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
12
- const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('getHook.ts', {
13
- isPrerendering: false
14
- });
12
+ const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('getHook.ts', {});
15
13
  function getHook(pageContext, hookName) {
16
14
  if (!(hookName in pageContext.exports)) {
17
15
  return null;
@@ -133,7 +131,7 @@ function getHookTimeoutDefault(hookName) {
133
131
  };
134
132
  }
135
133
  exports.getHookTimeoutDefault = getHookTimeoutDefault;
136
- function setIsPrerenderering() {
134
+ function getHook_setIsPrerenderering() {
137
135
  globalObject.isPrerendering = true;
138
136
  }
139
- exports.setIsPrerenderering = setIsPrerenderering;
137
+ exports.getHook_setIsPrerenderering = getHook_setIsPrerenderering;
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = void 0;
4
4
  // Automatically updated by @brillout/release-me
5
- exports.PROJECT_VERSION = '0.4.191-commit-349a3eb';
5
+ exports.PROJECT_VERSION = '0.4.191-commit-e99a55e';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genPromise = void 0;
4
+ function genPromise() {
5
+ let resolve;
6
+ const promise = new Promise((r) => (resolve = r));
7
+ return { promise, resolve };
8
+ }
9
+ exports.genPromise = genPromise;
@@ -1,5 +1,6 @@
1
1
  export { route, getPagesAndRoutes };
2
2
  export type { PageRoutes, PageFile, PageConfigRuntime as PageConfig };
3
+ export { getPageFilesAllSafe };
3
4
  import { route as routeInternal, type PageRoutes } from '../shared/route/index.js';
4
5
  import { type PageFile } from '../shared/getPageFiles.js';
5
6
  import { PageConfigRuntime } from '../shared/page-configs/PageConfig.js';
@@ -15,6 +16,12 @@ declare function getPagesAndRoutes(): Promise<{
15
16
  pageConfigs: PageConfigRuntime[];
16
17
  allPageIds: string[];
17
18
  }>;
19
+ declare function getPageFilesAllSafe(isProduction: boolean): Promise<{
20
+ pageFilesAll: PageFile[];
21
+ allPageIds: string[];
22
+ pageConfigs: PageConfigRuntime[];
23
+ pageConfigGlobal: import("../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
24
+ }>;
18
25
  declare function route(pageContext: Parameters<typeof routeInternal>[0]): Promise<{
19
26
  pageContextAddendum: import("../shared/route/index.js").PageContextFromRoute;
20
27
  }>;
@@ -1,9 +1,11 @@
1
1
  // Internals needed by vite-plugin-vercel
2
2
  export { route, getPagesAndRoutes };
3
+ // Internals needed by nitedani's experimental implementation of vike-telefunc
4
+ export { getPageFilesAllSafe };
3
5
  import { route as routeInternal } from '../shared/route/index.js';
4
- import { getGlobalContext, initGlobalContext } from '../node/runtime/globalContext.js';
6
+ import { getPageFilesAll } from '../shared/getPageFiles.js';
7
+ import { getGlobalContext, initGlobalContext_getGlobalContextAsync } from '../node/runtime/globalContext.js';
5
8
  import { handleNodeEnv_vitePluginVercel } from '../utils/assertNodeEnv.js';
6
- import { assert } from '../utils/assert.js';
7
9
  import { getRenderContext } from '../node/runtime/renderPage/renderPageAlreadyRouted.js';
8
10
  /**
9
11
  * Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel}
@@ -13,11 +15,10 @@ import { getRenderContext } from '../node/runtime/renderPage/renderPageAlreadyRo
13
15
  */
14
16
  async function getPagesAndRoutes() {
15
17
  handleNodeEnv_vitePluginVercel();
16
- await initGlobalContext(true);
17
- const globalContext = getGlobalContext();
18
- assert(globalContext.isProduction === true);
19
18
  const renderContext = await getRenderContext();
20
- const { pageFilesAll, pageConfigs, allPageIds, pageRoutes } = renderContext;
19
+ const {
20
+ //
21
+ pageRoutes, pageFilesAll, pageConfigs, allPageIds } = renderContext;
21
22
  return {
22
23
  pageRoutes,
23
24
  pageFilesAll,
@@ -25,6 +26,14 @@ async function getPagesAndRoutes() {
25
26
  allPageIds
26
27
  };
27
28
  }
29
+ // TODO: make it cleaner once the internal refactoring about global configs is done.
30
+ // Demo usage: https://github.com/vikejs/vike/pull/1823
31
+ async function getPageFilesAllSafe(isProduction) {
32
+ await initGlobalContext_getGlobalContextAsync(isProduction);
33
+ const globalContext = getGlobalContext();
34
+ const pageFilesAll = await getPageFilesAll(false, globalContext.isProduction);
35
+ return pageFilesAll;
36
+ }
28
37
  async function route(pageContext) {
29
38
  const pageContextFromRoute = await routeInternal(pageContext);
30
39
  // Old interface
@@ -94,7 +94,7 @@ async function triggerFullBuild(config, configVike, bundle) {
94
94
  }
95
95
  }
96
96
  function abortViteBuildSsr(configVike) {
97
- if (!configVike.disableAutoFullBuild && isViteCliCall() && getViteConfigFromCli()?.build.ssr) {
97
+ if (configVike.disableAutoFullBuild !== true && isViteCliCall() && getViteConfigFromCli()?.build.ssr) {
98
98
  assertWarning(false, `The CLI call ${pc.cyan('$ vite build --ssr')} is superfluous since ${pc.cyan('$ vite build')} also builds the server-side. If you want two separate build steps then use https://vike.dev/disableAutoFullBuild or use Vite's ${pc.cyan('build()')} API.`, { onlyOnce: true });
99
99
  process.exit(0);
100
100
  }
@@ -102,7 +102,10 @@ function abortViteBuildSsr(configVike) {
102
102
  function isDisabled(configVike) {
103
103
  const { disableAutoFullBuild } = configVike;
104
104
  if (disableAutoFullBuild === null || disableAutoFullBuild === 'prerender') {
105
- // TODO/v1-release: also enable autoFullBuild when running Vite's build() API
105
+ // TODO/v1-release: remove autoFullBuild for both Vite's build() API and Vite's CLI
106
+ // - Tell users to use `$ vike build` instead of `$ vite build`
107
+ // - Remove the whole writeBundle() hook logic
108
+ // - make `$ vite build` only build the client-side
106
109
  return !isViteCliCall();
107
110
  }
108
111
  else {
@@ -1,6 +1,6 @@
1
1
  export { setGlobalContext };
2
- import { setGlobalContext_isDev, setGlobalContext_viteDevServer } from '../../runtime/globalContext.js';
3
- import { isDev3 } from '../utils.js';
2
+ import { setGlobalContext_isDev, setGlobalContext_viteDevServer, setGlobalContext_viteConfig } from '../../runtime/globalContext.js';
3
+ import { assertFilePathAbsoluteFilesystem, getOutDirs, isDev3 } from '../utils.js';
4
4
  function setGlobalContext() {
5
5
  return {
6
6
  name: 'vike:setGlobalContext',
@@ -16,6 +16,11 @@ function setGlobalContext() {
16
16
  const isDev = isDev3(env);
17
17
  setGlobalContext_isDev(isDev);
18
18
  }
19
+ },
20
+ configResolved(config) {
21
+ const { outDirRoot } = getOutDirs(config);
22
+ assertFilePathAbsoluteFilesystem(outDirRoot); // Needed for loadImportBuild(outDir) of @brillout/vite-plugin-server-entry
23
+ setGlobalContext_viteConfig(config, outDirRoot);
19
24
  }
20
25
  };
21
26
  }
@@ -5,11 +5,11 @@ export { runPrerender_forceExit };
5
5
  import '../runtime/page-files/setup.js';
6
6
  import path from 'path';
7
7
  import { route } from '../../shared/route/index.js';
8
- import { assert, assertUsage, assertWarning, hasProp, projectInfo, objectAssign, isObjectWithKeys, isCallable, getOutDirs, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, handleNodeEnv_prerender, pLimit, assertFilePathAbsoluteFilesystem, isArray, changeEnumerable } from './utils.js';
8
+ import { assert, assertUsage, assertWarning, hasProp, projectInfo, objectAssign, isObjectWithKeys, isCallable, getOutDirs, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, handleNodeEnv_prerender, pLimit, isArray, changeEnumerable } from './utils.js';
9
9
  import { prerenderPage, prerender404Page, getRenderContext, getPageContextInitEnhanced } from '../runtime/renderPage/renderPageAlreadyRouted.js';
10
10
  import pc from '@brillout/picocolors';
11
11
  import { cpus } from 'os';
12
- import { getGlobalContext, initGlobalContext, setGlobalContext_prerender } from '../runtime/globalContext.js';
12
+ import { getGlobalContext, initGlobalContext_runPrerender, setGlobalContext_isPrerendering } from '../runtime/globalContext.js';
13
13
  import { resolveConfig } from 'vite';
14
14
  import { getConfigVike } from '../shared/getConfigVike.js';
15
15
  import { getPageFilesServerSide } from '../../shared/getPageFiles.js';
@@ -22,7 +22,7 @@ import { isErrorPage } from '../../shared/error-page.js';
22
22
  import { getPageContextUrlComputed } from '../../shared/getPageContextUrlComputed.js';
23
23
  import { isAbortError } from '../../shared/route/abort.js';
24
24
  import { loadUserFilesServerSide } from '../runtime/renderPage/loadUserFilesServerSide.js';
25
- import { getHookFromPageConfig, getHookFromPageConfigGlobal, getHookTimeoutDefault, setIsPrerenderering } from '../../shared/hooks/getHook.js';
25
+ import { getHookFromPageConfig, getHookFromPageConfigGlobal, getHookTimeoutDefault, getHook_setIsPrerenderering } from '../../shared/hooks/getHook.js';
26
26
  import { noRouteMatch } from '../../shared/route/noRouteMatch.js';
27
27
  import { getVikeConfig } from '../plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
28
28
  import { logErrorHint } from '../runtime/renderPage/logErrorHint.js';
@@ -55,7 +55,8 @@ async function runPrerenderFromAutoFullBuild(options) {
55
55
  }
56
56
  async function runPrerender(options, manuallyTriggered) {
57
57
  checkOutdatedOptions(options);
58
- setIsPrerenderering();
58
+ setGlobalContext_isPrerendering();
59
+ getHook_setIsPrerenderering();
59
60
  const logLevel = !!options.onPagePrerender ? 'warn' : 'info';
60
61
  if (logLevel === 'info') {
61
62
  console.log(`${pc.cyan(`vike v${projectInfo.projectVersion}`)} ${pc.green('pre-rendering HTML...')}`);
@@ -63,10 +64,9 @@ async function runPrerender(options, manuallyTriggered) {
63
64
  handleNodeEnv_prerender();
64
65
  await disableReactStreaming();
65
66
  const viteConfig = await resolveConfig(options.viteConfig || {}, 'vike pre-rendering', 'production');
66
- setGlobalContext_prerender(viteConfig);
67
67
  assertLoadedConfig(viteConfig, options);
68
68
  const configVike = await getConfigVike(viteConfig);
69
- const { outDirClient, outDirRoot } = getOutDirs(viteConfig);
69
+ const { outDirClient } = getOutDirs(viteConfig);
70
70
  const { root } = viteConfig;
71
71
  const prerenderConfig = configVike.prerender;
72
72
  if (!prerenderConfig) {
@@ -77,8 +77,7 @@ async function runPrerender(options, manuallyTriggered) {
77
77
  }
78
78
  const { partial = false, noExtraDir = false, parallel = true } = prerenderConfig || {};
79
79
  const concurrencyLimit = pLimit(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? cpus().length : parallel);
80
- assertFilePathAbsoluteFilesystem(outDirRoot); // Needed for loadImportBuild(outDir) of @brillout/vite-plugin-server-entry
81
- await initGlobalContext(true, outDirRoot);
80
+ await initGlobalContext_runPrerender();
82
81
  const renderContext = await getRenderContext();
83
82
  renderContext.pageFilesAll.forEach(assertExportNames);
84
83
  const prerenderContext = {};
@@ -1,13 +1,16 @@
1
1
  export { getGlobalContextSync };
2
2
  export { getGlobalContextAsync };
3
- export { initGlobalContext };
4
3
  export { getGlobalContext };
5
4
  export { getViteDevServer };
6
5
  export { getViteConfig };
6
+ export { getRuntimeManifest };
7
+ export { initGlobalContext_renderPage };
8
+ export { initGlobalContext_runPrerender };
9
+ export { initGlobalContext_getGlobalContextAsync };
7
10
  export { setGlobalContext_viteDevServer };
11
+ export { setGlobalContext_viteConfig };
8
12
  export { setGlobalContext_isDev };
9
- export { setGlobalContext_prerender };
10
- export { getRuntimeManifest };
13
+ export { setGlobalContext_isPrerendering };
11
14
  import type { ViteManifest } from '../shared/ViteManifest.js';
12
15
  import type { ResolvedConfig, ViteDevServer } from 'vite';
13
16
  import { PluginManifest } from '../shared/assertPluginManifest.js';
@@ -46,11 +49,14 @@ declare function getGlobalContext(): GlobalContext;
46
49
  /** @experimental https://vike.dev/getGlobalContext */
47
50
  declare function getGlobalContextSync(): GlobalContextPublic;
48
51
  /** @experimental https://vike.dev/getGlobalContext */
49
- declare function getGlobalContextAsync(): Promise<GlobalContextPublic>;
52
+ declare function getGlobalContextAsync(isProduction: boolean): Promise<GlobalContextPublic>;
50
53
  declare function setGlobalContext_viteDevServer(viteDevServer: ViteDevServer): void;
54
+ declare function setGlobalContext_viteConfig(viteConfig: ResolvedConfig, outDirRoot: string): void;
51
55
  declare function setGlobalContext_isDev(isDev: boolean): void;
56
+ declare function setGlobalContext_isPrerendering(): void;
52
57
  declare function getViteDevServer(): ViteDevServer | null;
53
- declare function setGlobalContext_prerender(viteConfig: ResolvedConfig): void;
54
58
  declare function getViteConfig(): ResolvedConfig | null;
55
- declare function initGlobalContext(isPrerendering?: boolean, outDir?: string): Promise<void>;
59
+ declare function initGlobalContext_renderPage(): Promise<void>;
60
+ declare function initGlobalContext_runPrerender(): Promise<void>;
61
+ declare function initGlobalContext_getGlobalContextAsync(isProduction: boolean): Promise<void>;
56
62
  declare function getRuntimeManifest(configVike: ConfigVikeResolved): RuntimeManifest;
@@ -2,15 +2,18 @@
2
2
  export { getGlobalContextSync };
3
3
  export { getGlobalContextAsync };
4
4
  // Internal use
5
- export { initGlobalContext };
6
5
  export { getGlobalContext };
7
6
  export { getViteDevServer };
8
7
  export { getViteConfig };
8
+ export { getRuntimeManifest };
9
+ export { initGlobalContext_renderPage };
10
+ export { initGlobalContext_runPrerender };
11
+ export { initGlobalContext_getGlobalContextAsync };
9
12
  export { setGlobalContext_viteDevServer };
13
+ export { setGlobalContext_viteConfig };
10
14
  export { setGlobalContext_isDev };
11
- export { setGlobalContext_prerender };
12
- export { getRuntimeManifest };
13
- import { assert, assertNodeEnv_runtime, assertUsage, assertWarning, getGlobalObject, isPlainObject, objectAssign, objectKeys } from './utils.js';
15
+ export { setGlobalContext_isPrerendering };
16
+ import { assert, assertNodeEnv_runtime, assertUsage, assertWarning, getGlobalObject, isPlainObject, objectAssign, objectKeys, genPromise } from './utils.js';
14
17
  import { loadImportBuild } from './globalContext/loadImportBuild.js';
15
18
  import { setPageFiles } from '../../shared/getPageFiles.js';
16
19
  import { assertPluginManifest } from '../shared/assertPluginManifest.js';
@@ -18,10 +21,13 @@ import { getConfigVike } from '../shared/getConfigVike.js';
18
21
  import { assertRuntimeManifest } from '../shared/assertRuntimeManifest.js';
19
22
  import pc from '@brillout/picocolors';
20
23
  import { getPageFilesExports } from './page-files/getPageFilesExports.js';
21
- let resolveGlobalContext;
22
- const globalObject = getGlobalObject('globalContext.ts', {
23
- globalContextPromise: new Promise((r) => (resolveGlobalContext = r))
24
- });
24
+ const globalObject = getGlobalObject('globalContext.ts', (() => {
25
+ const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = genPromise();
26
+ return {
27
+ viteDevServerPromise,
28
+ viteDevServerPromiseResolve
29
+ };
30
+ })());
25
31
  function getGlobalContext() {
26
32
  assert(globalObject.globalContext);
27
33
  return globalObject.globalContext;
@@ -32,10 +38,12 @@ function getGlobalContextSync() {
32
38
  return makePublic(globalObject.globalContext);
33
39
  }
34
40
  /** @experimental https://vike.dev/getGlobalContext */
35
- async function getGlobalContextAsync() {
36
- await globalObject.globalContextPromise;
37
- assert(globalObject.globalContext);
38
- return makePublic(globalObject.globalContext);
41
+ async function getGlobalContextAsync(isProduction) {
42
+ assertUsage(typeof isProduction === 'boolean', `[getGlobalContextAsync(isProduction)] Argument ${pc.cyan('isProduction')} ${isProduction === undefined ? 'is missing' : `should be ${pc.cyan('true')} or ${pc.cyan('false')}`}`);
43
+ await initGlobalContext_getGlobalContextAsync(isProduction);
44
+ const { globalContext } = globalObject;
45
+ assert(globalContext);
46
+ return makePublic(globalContext);
39
47
  }
40
48
  function makePublic(globalContext) {
41
49
  const globalContextPublic = {
@@ -64,35 +72,75 @@ function makePublic(globalContext) {
64
72
  function setGlobalContext_viteDevServer(viteDevServer) {
65
73
  if (globalObject.viteDevServer)
66
74
  return;
67
- assert(!globalObject.globalContext);
68
- globalObject.viteConfig = viteDevServer.config;
75
+ assertIsNotInitilizedYet();
76
+ assert(globalObject.viteConfig);
69
77
  globalObject.viteDevServer = viteDevServer;
78
+ globalObject.viteDevServerPromiseResolve(viteDevServer);
70
79
  eagerlyLoadUserFiles();
71
80
  }
81
+ function setGlobalContext_viteConfig(viteConfig, outDirRoot) {
82
+ if (globalObject.viteConfig)
83
+ return;
84
+ assertIsNotInitilizedYet();
85
+ globalObject.viteConfig = viteConfig;
86
+ globalObject.outDirRoot = outDirRoot;
87
+ }
88
+ function assertIsNotInitilizedYet() {
89
+ // In develpoment, globalObject.viteDevServer always needs to be awaited for before initializing globalObject.globalContext
90
+ assert(!globalObject.globalContext);
91
+ }
72
92
  function setGlobalContext_isDev(isDev) {
73
93
  globalObject.isDev = isDev;
74
94
  }
95
+ function setGlobalContext_isPrerendering() {
96
+ globalObject.isPrerendering = true;
97
+ }
75
98
  function getViteDevServer() {
76
99
  return globalObject.viteDevServer ?? null;
77
100
  }
78
- function setGlobalContext_prerender(viteConfig) {
79
- if (globalObject.viteConfig)
80
- return;
81
- assert(!globalObject.globalContext);
82
- globalObject.viteConfig = viteConfig;
83
- }
84
101
  function getViteConfig() {
85
102
  return globalObject.viteConfig ?? null;
86
103
  }
87
- async function initGlobalContext(isPrerendering = false, outDir) {
88
- if (globalObject.globalContext)
104
+ async function initGlobalContext_renderPage() {
105
+ await initGlobalContext(!globalObject.isDev);
106
+ }
107
+ async function initGlobalContext_runPrerender() {
108
+ assert(globalObject.isPrerendering);
109
+ assert(globalObject.viteConfig);
110
+ assert(globalObject.outDirRoot);
111
+ // We assume initGlobalContext_runPrerender() to be called before:
112
+ // - initGlobalContext_renderPage()
113
+ // - initGlobalContext_getGlobalContextAsync()
114
+ assert(!globalObject.globalContext);
115
+ await initGlobalContext(true);
116
+ }
117
+ async function initGlobalContext_getGlobalContextAsync(isProduction) {
118
+ if (!isProduction) {
119
+ const waitFor = 20;
120
+ const timeout = setTimeout(() => {
121
+ assertWarning(false, `Vite's development server still not created after ${waitFor} seconds.`, {
122
+ onlyOnce: false,
123
+ showStackTrace: true
124
+ });
125
+ }, waitFor * 1000);
126
+ await globalObject.viteDevServerPromise;
127
+ clearTimeout(timeout);
128
+ }
129
+ await initGlobalContext(isProduction);
130
+ }
131
+ async function initGlobalContext(isProduction) {
132
+ if (globalObject.globalContext) {
133
+ assert(globalObject.globalContext.isProduction === isProduction);
134
+ // We assume setGlobalContext_isPrerendering() is called before initGlobalContext()
135
+ assert(globalObject.globalContext.isPrerendering === (globalObject.isPrerendering ?? false));
89
136
  return;
90
- const { viteDevServer, viteConfig, isDev } = globalObject;
137
+ }
138
+ const { viteDevServer, viteConfig, isDev, isPrerendering } = globalObject;
91
139
  assertNodeEnv_runtime(isDev ?? false);
92
- if (isDev) {
140
+ if (!isProduction) {
93
141
  assert(viteConfig);
94
- assert(!isPrerendering);
95
142
  assert(viteDevServer);
143
+ assert(!isPrerendering);
96
144
  const configVike = await getConfigVike(viteConfig);
97
145
  const pluginManifest = getRuntimeManifest(configVike);
98
146
  globalObject.globalContext = {
@@ -111,7 +159,7 @@ async function initGlobalContext(isPrerendering = false, outDir) {
111
159
  };
112
160
  }
113
161
  else {
114
- const buildEntries = await loadImportBuild(outDir);
162
+ const buildEntries = await loadImportBuild(globalObject.outDirRoot);
115
163
  assertBuildEntries(buildEntries, isPrerendering ?? false);
116
164
  const { pageFiles, assetsManifest, pluginManifest } = buildEntries;
117
165
  setPageFiles(pageFiles);
@@ -147,7 +195,6 @@ async function initGlobalContext(isPrerendering = false, outDir) {
147
195
  globalObject.globalContext = globalContext;
148
196
  }
149
197
  }
150
- resolveGlobalContext(globalObject.globalContext);
151
198
  }
152
199
  function getRuntimeManifest(configVike) {
153
200
  const { includeAssetsImportedByServer, baseServer, baseAssets, redirects, trailingSlash, disableUrlNormalization } = configVike;
@@ -4,7 +4,7 @@ import { getRenderContext, getPageContextInitEnhanced, renderPageAlreadyRouted }
4
4
  import { route } from '../../shared/route/index.js';
5
5
  import { assert, hasProp, objectAssign, isUrl, parseUrl, assertEnv, assertWarning, getGlobalObject, checkType, assertUsage, normalizeUrlPathname, removeBaseServer, modifyUrlPathname, prependBase, removeUrlOrigin, addUrlOrigin, createUrlFromComponents, isUri } from './utils.js';
6
6
  import { assertNoInfiniteAbortLoop, getPageContextFromAllRewrites, isAbortError, logAbortErrorHandled } from '../../shared/route/abort.js';
7
- import { getGlobalContext, initGlobalContext } from './globalContext.js';
7
+ import { getGlobalContext, initGlobalContext_renderPage } from './globalContext.js';
8
8
  import { handlePageContextRequestUrl } from './renderPage/handlePageContextRequestUrl.js';
9
9
  import { createHttpResponseObjectRedirect, createHttpResponsePageContextJson } from './renderPage/createHttpResponseObject.js';
10
10
  import { logRuntimeError, logRuntimeInfo } from './renderPage/loggerRuntime.js';
@@ -61,12 +61,12 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
61
61
  // Prepare context
62
62
  let renderContext;
63
63
  try {
64
- await initGlobalContext();
64
+ await initGlobalContext_renderPage();
65
65
  renderContext = await getRenderContext();
66
66
  }
67
67
  catch (err) {
68
- // Errors are expected since assertUsage() is used in both initGlobalContext() and getRenderContext().
69
- // initGlobalContext() and getRenderContext() don't call any user hooks => err isn't thrown from user code
68
+ // Errors are expected since assertUsage() is used in both initGlobalContext_renderPage() and getRenderContext().
69
+ // initGlobalContext_renderPage() and getRenderContext() don't call any user hooks => err isn't thrown from user code.
70
70
  assert(!isAbortError(err));
71
71
  logRuntimeError(err, httpRequestId);
72
72
  const pageContextHttpResponseNull = getPageContextHttpResponseNullWithError(err, pageContextInit);
@@ -56,3 +56,4 @@ export * from '../../utils/normalizeHeaders.js';
56
56
  export * from '../../utils/isVikeReactApp.js';
57
57
  export * from '../../utils/getPropAccessNotation.js';
58
58
  export * from '../../utils/PROJECT_VERSION.js';
59
+ export * from '../../utils/genPromise.js';
@@ -59,3 +59,4 @@ export * from '../../utils/normalizeHeaders.js';
59
59
  export * from '../../utils/isVikeReactApp.js';
60
60
  export * from '../../utils/getPropAccessNotation.js';
61
61
  export * from '../../utils/PROJECT_VERSION.js';
62
+ export * from '../../utils/genPromise.js';
@@ -2,7 +2,7 @@ export { getHook };
2
2
  export { getHookFromPageConfig };
3
3
  export { getHookFromPageConfigGlobal };
4
4
  export { assertHook };
5
- export { setIsPrerenderering };
5
+ export { getHook_setIsPrerenderering };
6
6
  export type { Hook };
7
7
  export type { HookName };
8
8
  export type { HookLoc };
@@ -33,4 +33,4 @@ declare function assertHook<TPageContext extends PageContextExports, THookName e
33
33
  exports: Record<THookName, Function | undefined>;
34
34
  };
35
35
  declare function getHookTimeoutDefault(hookName: HookName): HookTimeout;
36
- declare function setIsPrerenderering(): void;
36
+ declare function getHook_setIsPrerenderering(): void;
@@ -2,7 +2,7 @@ export { getHook };
2
2
  export { getHookFromPageConfig };
3
3
  export { getHookFromPageConfigGlobal };
4
4
  export { assertHook };
5
- export { setIsPrerenderering };
5
+ export { getHook_setIsPrerenderering };
6
6
  // TODO/v1-release: remove
7
7
  // We export for old V0.4 design which doesn't support configooksTimeout
8
8
  export { getHookTimeoutDefault };
@@ -11,9 +11,7 @@ import { getHookFilePathToShowToUser } from '../page-configs/helpers.js';
11
11
  import { getConfigValueRuntime } from '../page-configs/getConfigValue.js';
12
12
  import { assert, assertUsage, checkType, isCallable, isObject } from '../utils.js';
13
13
  import pc from '@brillout/picocolors';
14
- const globalObject = getGlobalObject('getHook.ts', {
15
- isPrerendering: false
16
- });
14
+ const globalObject = getGlobalObject('getHook.ts', {});
17
15
  function getHook(pageContext, hookName) {
18
16
  if (!(hookName in pageContext.exports)) {
19
17
  return null;
@@ -130,6 +128,6 @@ function getHookTimeoutDefault(hookName) {
130
128
  warning: 4 * 1000
131
129
  };
132
130
  }
133
- function setIsPrerenderering() {
131
+ function getHook_setIsPrerenderering() {
134
132
  globalObject.isPrerendering = true;
135
133
  }
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.191-commit-349a3eb";
1
+ export declare const PROJECT_VERSION: "0.4.191-commit-e99a55e";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.191-commit-349a3eb';
2
+ export const PROJECT_VERSION = '0.4.191-commit-e99a55e';
@@ -0,0 +1,4 @@
1
+ export declare function genPromise<T>(): {
2
+ promise: Promise<T>;
3
+ resolve: (val: T) => void;
4
+ };
@@ -0,0 +1,5 @@
1
+ export function genPromise() {
2
+ let resolve;
3
+ const promise = new Promise((r) => (resolve = r));
4
+ return { promise, resolve };
5
+ }
@@ -1,4 +1,4 @@
1
1
  export declare const projectInfo: {
2
2
  projectName: "Vike";
3
- projectVersion: "0.4.191-commit-349a3eb";
3
+ projectVersion: "0.4.191-commit-e99a55e";
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.191-commit-349a3eb",
3
+ "version": "0.4.191-commit-e99a55e",
4
4
  "scripts": {
5
5
  "dev": "tsc --watch",
6
6
  "build": "rimraf dist/ && pnpm run build:esm && pnpm run build:cjs",