vike 0.4.214 → 0.4.216

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.
Files changed (112) hide show
  1. package/dist/cjs/__internal/index.js +2 -2
  2. package/dist/cjs/node/api/build.js +14 -3
  3. package/dist/cjs/node/api/context.js +20 -0
  4. package/dist/cjs/node/api/dev.js +11 -3
  5. package/dist/cjs/node/api/onLoad.js +9 -0
  6. package/dist/cjs/node/api/{enhanceViteConfig.js → prepareViteApiCall.js} +11 -6
  7. package/dist/cjs/node/api/prerender.js +11 -3
  8. package/dist/cjs/node/api/preview.js +11 -3
  9. package/dist/cjs/node/api/utils.js +22 -0
  10. package/dist/cjs/node/cli/entry.js +8 -8
  11. package/dist/cjs/node/cli/onLoad.js +2 -0
  12. package/dist/cjs/node/plugin/index.js +2 -3
  13. package/dist/cjs/node/plugin/onLoad.js +2 -2
  14. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +0 -3
  15. package/dist/cjs/node/plugin/plugins/buildConfig.js +6 -5
  16. package/dist/cjs/node/plugin/plugins/commonConfig/pluginName.js +1 -1
  17. package/dist/cjs/node/plugin/plugins/commonConfig.js +23 -1
  18. package/dist/cjs/node/plugin/plugins/devConfig/index.js +0 -3
  19. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +9 -19
  20. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +7 -7
  21. package/dist/cjs/node/plugin/plugins/previewConfig.js +0 -1
  22. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +32 -17
  23. package/dist/cjs/node/prerender/runPrerender.js +5 -4
  24. package/dist/cjs/node/prerender/utils.js +1 -1
  25. package/dist/cjs/node/runtime/globalContext.js +6 -6
  26. package/dist/cjs/node/runtime/index-common.js +3 -1
  27. package/dist/cjs/node/runtime/renderPage.js +4 -2
  28. package/dist/cjs/node/runtime/utils.js +1 -2
  29. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +25 -0
  30. package/dist/cjs/node/runtime-dev/index.js +32 -0
  31. package/dist/cjs/shared/page-configs/getConfigValue.js +2 -31
  32. package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +4 -4
  33. package/dist/cjs/shared/page-configs/getConfigValueTyped.js +32 -0
  34. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +2 -2
  35. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  36. package/dist/cjs/utils/assertSetup.js +135 -0
  37. package/dist/cjs/utils/isDocker.js +2 -2
  38. package/dist/cjs/utils/requireResolve.js +2 -2
  39. package/dist/esm/__internal/index.js +2 -2
  40. package/dist/esm/node/api/build.d.ts +10 -3
  41. package/dist/esm/node/api/build.js +14 -3
  42. package/dist/esm/node/api/context.d.ts +5 -0
  43. package/dist/esm/node/api/context.js +19 -0
  44. package/dist/esm/node/api/dev.d.ts +11 -2
  45. package/dist/esm/node/api/dev.js +11 -3
  46. package/dist/esm/node/api/onLoad.d.ts +2 -0
  47. package/dist/esm/node/api/onLoad.js +7 -0
  48. package/dist/esm/node/api/prepareViteApiCall.d.ts +7 -0
  49. package/dist/esm/node/api/{enhanceViteConfig.js → prepareViteApiCall.js} +11 -6
  50. package/dist/esm/node/api/prerender.d.ts +9 -1
  51. package/dist/esm/node/api/prerender.js +11 -3
  52. package/dist/esm/node/api/preview.d.ts +11 -2
  53. package/dist/esm/node/api/preview.js +11 -3
  54. package/dist/esm/node/api/{APIOptions.d.ts → types.d.ts} +3 -1
  55. package/dist/esm/node/api/utils.d.ts +2 -0
  56. package/dist/esm/node/api/utils.js +6 -0
  57. package/dist/esm/node/cli/entry.js +8 -8
  58. package/dist/esm/node/cli/onLoad.js +2 -0
  59. package/dist/esm/node/cli/parseCli.d.ts +1 -1
  60. package/dist/esm/node/plugin/index.js +3 -4
  61. package/dist/esm/node/plugin/onLoad.js +1 -1
  62. package/dist/esm/node/plugin/plugins/autoFullBuild.js +0 -3
  63. package/dist/esm/node/plugin/plugins/buildConfig.js +7 -6
  64. package/dist/esm/node/plugin/plugins/commonConfig/pluginName.d.ts +1 -1
  65. package/dist/esm/node/plugin/plugins/commonConfig/pluginName.js +1 -1
  66. package/dist/esm/node/plugin/plugins/commonConfig.js +23 -1
  67. package/dist/esm/node/plugin/plugins/devConfig/index.js +1 -4
  68. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
  69. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +10 -20
  70. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +7 -7
  71. package/dist/esm/node/plugin/plugins/previewConfig.js +1 -2
  72. package/dist/esm/node/plugin/plugins/setGlobalContext.d.ts +1 -1
  73. package/dist/esm/node/plugin/plugins/setGlobalContext.js +34 -19
  74. package/dist/esm/node/prerender/runPrerender.d.ts +5 -3
  75. package/dist/esm/node/prerender/runPrerender.js +6 -5
  76. package/dist/esm/node/prerender/utils.d.ts +1 -1
  77. package/dist/esm/node/prerender/utils.js +1 -1
  78. package/dist/esm/node/runtime/globalContext.d.ts +2 -2
  79. package/dist/esm/node/runtime/globalContext.js +7 -7
  80. package/dist/esm/node/runtime/index-common.d.ts +1 -0
  81. package/dist/esm/node/runtime/index-common.js +1 -0
  82. package/dist/esm/node/runtime/renderPage.js +5 -3
  83. package/dist/esm/node/runtime/utils.d.ts +1 -2
  84. package/dist/esm/node/runtime/utils.js +1 -2
  85. package/dist/esm/node/runtime-dev/createDevMiddleware.d.ts +10 -0
  86. package/dist/esm/node/runtime-dev/createDevMiddleware.js +23 -0
  87. package/dist/esm/node/runtime-dev/index.d.ts +3 -0
  88. package/dist/esm/node/runtime-dev/index.js +6 -0
  89. package/dist/esm/shared/page-configs/getConfigValue.d.ts +2 -8
  90. package/dist/esm/shared/page-configs/getConfigValue.js +1 -27
  91. package/dist/esm/shared/page-configs/getConfigValueBuildTime.d.ts +2 -3
  92. package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +2 -2
  93. package/dist/esm/shared/page-configs/getConfigValueTyped.d.ts +9 -0
  94. package/dist/esm/shared/page-configs/getConfigValueTyped.js +27 -0
  95. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  96. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  97. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  98. package/dist/esm/utils/assertSetup.d.ts +20 -0
  99. package/dist/esm/utils/assertSetup.js +130 -0
  100. package/dist/esm/utils/isDocker.js +1 -1
  101. package/dist/esm/utils/projectInfo.d.ts +1 -1
  102. package/dist/esm/utils/requireResolve.js +1 -1
  103. package/package.json +1 -1
  104. package/dist/cjs/utils/assertIsNotProductionRuntime.js +0 -62
  105. package/dist/cjs/utils/assertNodeEnv.js +0 -106
  106. package/dist/esm/node/api/enhanceViteConfig.d.ts +0 -6
  107. package/dist/esm/utils/assertIsNotProductionRuntime.d.ts +0 -12
  108. package/dist/esm/utils/assertIsNotProductionRuntime.js +0 -59
  109. package/dist/esm/utils/assertNodeEnv.d.ts +0 -10
  110. package/dist/esm/utils/assertNodeEnv.js +0 -103
  111. /package/dist/cjs/node/api/{APIOptions.js → types.js} +0 -0
  112. /package/dist/esm/node/api/{APIOptions.js → types.js} +0 -0
@@ -6,7 +6,7 @@ exports.getMiddlewares = getMiddlewares;
6
6
  const index_js_1 = require("../shared/route/index.js");
7
7
  const getPageFiles_js_1 = require("../shared/getPageFiles.js");
8
8
  const globalContext_js_1 = require("../node/runtime/globalContext.js");
9
- const assertNodeEnv_js_1 = require("../utils/assertNodeEnv.js");
9
+ const assertSetup_js_1 = require("../utils/assertSetup.js");
10
10
  const renderPageAlreadyRouted_js_1 = require("../node/runtime/renderPage/renderPageAlreadyRouted.js");
11
11
  /**
12
12
  * Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel}
@@ -15,7 +15,7 @@ const renderPageAlreadyRouted_js_1 = require("../node/runtime/renderPage/renderP
15
15
  * @param config
16
16
  */
17
17
  async function getPagesAndRoutes() {
18
- (0, assertNodeEnv_js_1.handleNodeEnv_vitePluginVercel)();
18
+ (0, assertSetup_js_1.setNodeEnvProduction)();
19
19
  const renderContext = await (0, renderPageAlreadyRouted_js_1.getRenderContext)();
20
20
  const {
21
21
  //
@@ -24,10 +24,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.build = build;
27
- const enhanceViteConfig_js_1 = require("./enhanceViteConfig.js");
27
+ const prepareViteApiCall_js_1 = require("./prepareViteApiCall.js");
28
28
  const vite_1 = require("vite");
29
+ /**
30
+ * Programmatically trigger `$ vike build`
31
+ *
32
+ * https://vike.dev/api#build
33
+ */
29
34
  async function build(options = {}) {
30
- const { viteConfigEnhanced, configVike } = await (0, enhanceViteConfig_js_1.enhanceViteConfig)(options.viteConfig, 'build');
35
+ const { viteConfigEnhanced, configVike } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options.viteConfig, 'build');
31
36
  // Build client-side
32
37
  const outputClient = await (0, vite_1.build)(viteConfigEnhanced);
33
38
  // Build server-side
@@ -37,7 +42,13 @@ async function build(options = {}) {
37
42
  const { runPrerenderFromAutoRun } = await Promise.resolve().then(() => __importStar(require('../prerender/runPrerender.js')));
38
43
  await runPrerenderFromAutoRun(viteConfigEnhanced, true);
39
44
  }
40
- return { outputClient, outputServer };
45
+ return {
46
+ /* We don't return `viteConfig` because `viteConfigEnhanced` is `InlineConfig` not `ResolvedConfig`
47
+ viteConfig: viteConfigEnhanced,
48
+ */
49
+ rollupOutputClient: outputClient,
50
+ rollupOutputServer: outputServer
51
+ };
41
52
  }
42
53
  function setSSR(viteConfig) {
43
54
  return {
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isVikeCliOrApi = isVikeCliOrApi;
4
+ exports.setOperation = setOperation;
5
+ const utils_js_1 = require("./utils.js");
6
+ const globalObject = (0, utils_js_1.getGlobalObject)('context.ts', {
7
+ apiOperation: undefined
8
+ });
9
+ function getOperation() {
10
+ (0, utils_js_1.assert)(globalObject.apiOperation);
11
+ return globalObject.apiOperation;
12
+ }
13
+ function isVikeCliOrApi() {
14
+ // The CLI uses the API
15
+ return !!globalObject.apiOperation;
16
+ }
17
+ function setOperation(operation) {
18
+ (0, utils_js_1.assert)(!globalObject.apiOperation);
19
+ globalObject.apiOperation = operation;
20
+ }
@@ -1,10 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dev = dev;
4
- const enhanceViteConfig_js_1 = require("./enhanceViteConfig.js");
4
+ const prepareViteApiCall_js_1 = require("./prepareViteApiCall.js");
5
5
  const vite_1 = require("vite");
6
+ /**
7
+ * Programmatically trigger `$ vike dev`
8
+ *
9
+ * https://vike.dev/api#dev
10
+ */
6
11
  async function dev(options = {}) {
7
- const { viteConfigEnhanced } = await (0, enhanceViteConfig_js_1.enhanceViteConfig)(options.viteConfig, 'dev');
12
+ const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options.viteConfig, 'dev');
8
13
  const server = await (0, vite_1.createServer)(viteConfigEnhanced);
9
- return server;
14
+ return {
15
+ viteServer: server,
16
+ viteConfig: server.config
17
+ };
10
18
  }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.onLoad = onLoad;
4
+ const assertIsNotBrowser_js_1 = require("../../utils/assertIsNotBrowser.js");
5
+ const utils_js_1 = require("../runtime/utils.js");
6
+ function onLoad() {
7
+ (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
8
+ (0, utils_js_1.assertIsNotProductionRuntime)();
9
+ }
@@ -23,12 +23,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.enhanceViteConfig = enhanceViteConfig;
26
+ exports.prepareViteApiCall = prepareViteApiCall;
27
27
  const vite_1 = require("vite");
28
28
  const getConfigVike_js_1 = require("../shared/getConfigVike.js");
29
29
  const pluginName_js_1 = require("../plugin/plugins/commonConfig/pluginName.js");
30
- async function enhanceViteConfig(viteConfig = {}, command) {
31
- let viteConfigResolved = await resolveViteConfig(viteConfig, command);
30
+ const context_js_1 = require("./context.js");
31
+ async function prepareViteApiCall(viteConfig = {}, operation) {
32
+ (0, context_js_1.setOperation)(operation);
33
+ return enhanceViteConfig(viteConfig, operation);
34
+ }
35
+ async function enhanceViteConfig(viteConfig = {}, operation) {
36
+ let viteConfigResolved = await resolveViteConfig(viteConfig, operation);
32
37
  let viteConfigEnhanced = viteConfig;
33
38
  // Add vike to plugins if not present
34
39
  if (!viteConfigResolved.plugins.some((p) => p.name === pluginName_js_1.pluginName)) {
@@ -38,7 +43,7 @@ async function enhanceViteConfig(viteConfig = {}, command) {
38
43
  ...viteConfig,
39
44
  plugins: [...(viteConfig.plugins ?? []), vikePlugin()]
40
45
  };
41
- viteConfigResolved = await resolveViteConfig(viteConfigEnhanced, command);
46
+ viteConfigResolved = await resolveViteConfig(viteConfigEnhanced, operation);
42
47
  }
43
48
  const configVike = await (0, getConfigVike_js_1.getConfigVike)(viteConfigResolved);
44
49
  // TODO: enable Vike extensions to add Vite plugins
@@ -47,6 +52,6 @@ async function enhanceViteConfig(viteConfig = {}, command) {
47
52
  configVike
48
53
  };
49
54
  }
50
- async function resolveViteConfig(viteConfig, command) {
51
- return await (0, vite_1.resolveConfig)(viteConfig, command === 'build' || command === 'prerender' ? 'build' : 'serve', 'custom', command === 'dev' ? 'development' : 'production', command === 'preview');
55
+ async function resolveViteConfig(viteConfig, operation) {
56
+ return await (0, vite_1.resolveConfig)(viteConfig, operation === 'build' || operation === 'prerender' ? 'build' : 'serve', 'custom', operation === 'dev' ? 'development' : 'production', operation === 'preview');
52
57
  }
@@ -2,9 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prerender = prerender;
4
4
  const runPrerender_js_1 = require("../prerender/runPrerender.js");
5
- const enhanceViteConfig_js_1 = require("./enhanceViteConfig.js");
5
+ const prepareViteApiCall_js_1 = require("./prepareViteApiCall.js");
6
+ /**
7
+ * Programmatically trigger `$ vike prerender`
8
+ *
9
+ * https://vike.dev/api#prerender
10
+ */
6
11
  async function prerender(options = {}) {
7
- const { viteConfigEnhanced } = await (0, enhanceViteConfig_js_1.enhanceViteConfig)(options.viteConfig, 'prerender');
12
+ const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options.viteConfig, 'prerender');
8
13
  options.viteConfig = viteConfigEnhanced;
9
- await (0, runPrerender_js_1.runPrerenderFromAPI)(options);
14
+ const { viteConfig } = await (0, runPrerender_js_1.runPrerenderFromAPI)(options);
15
+ return {
16
+ viteConfig
17
+ };
10
18
  }
@@ -1,10 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.preview = preview;
4
- const enhanceViteConfig_js_1 = require("./enhanceViteConfig.js");
4
+ const prepareViteApiCall_js_1 = require("./prepareViteApiCall.js");
5
5
  const vite_1 = require("vite");
6
+ /**
7
+ * Programmatically trigger `$ vike preview`
8
+ *
9
+ * https://vike.dev/api#preview
10
+ */
6
11
  async function preview(options = {}) {
7
- const { viteConfigEnhanced } = await (0, enhanceViteConfig_js_1.enhanceViteConfig)(options.viteConfig, 'preview');
12
+ const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options.viteConfig, 'preview');
8
13
  const server = await (0, vite_1.preview)(viteConfigEnhanced);
9
- return server;
14
+ return {
15
+ viteServer: server,
16
+ viteConfig: server.config
17
+ };
10
18
  }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ // Utils needed by Vike's API
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ // We call onLoad() here so that it's called even when only a subset of the API is loaded. (Making the assert() calls inside onLoad() a lot stronger.)
19
+ const onLoad_js_1 = require("./onLoad.js");
20
+ (0, onLoad_js_1.onLoad)();
21
+ __exportStar(require("../../utils/assert.js"), exports);
22
+ __exportStar(require("../../utils/getGlobalObject.js"), exports);
@@ -49,16 +49,16 @@ async function cli() {
49
49
  async function cmdDev() {
50
50
  const startTime = performance.now();
51
51
  try {
52
- const server = await (0, index_js_1.dev)();
53
- await server.listen();
54
- const info = server.config.logger.info;
52
+ const { viteServer } = await (0, index_js_1.dev)();
53
+ await viteServer.listen();
54
+ const info = viteServer.config.logger.info;
55
55
  const startupDurationString = picocolors_1.default.dim(`ready in ${picocolors_1.default.reset(picocolors_1.default.bold(String(Math.ceil(performance.now() - startTime))))} ms`);
56
56
  const hasExistingLogs = process.stdout.bytesWritten > 0 || process.stderr.bytesWritten > 0;
57
57
  info(` ${picocolors_1.default.yellow(`${picocolors_1.default.bold(utils_js_1.projectInfo.projectName)} v${utils_js_1.projectInfo.projectVersion}`)} ${startupDurationString}\n`, {
58
58
  clear: !hasExistingLogs
59
59
  });
60
- server.printUrls();
61
- server.bindCLIShortcuts({ print: true });
60
+ viteServer.printUrls();
61
+ viteServer.bindCLIShortcuts({ print: true });
62
62
  }
63
63
  catch (err) {
64
64
  console.error(picocolors_1.default.red(`Error while starting dev server:`));
@@ -80,9 +80,9 @@ async function cmdBuild() {
80
80
  }
81
81
  async function cmdPreview() {
82
82
  try {
83
- const server = await (0, index_js_1.preview)();
84
- server.printUrls();
85
- server.bindCLIShortcuts({ print: true });
83
+ const { viteServer } = await (0, index_js_1.preview)();
84
+ viteServer.printUrls();
85
+ viteServer.bindCLIShortcuts({ print: true });
86
86
  }
87
87
  catch (err) {
88
88
  console.error(picocolors_1.default.red(`Error while starting preview server:`));
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.onLoad = onLoad;
4
4
  const assertIsNotBrowser_js_1 = require("../../utils/assertIsNotBrowser.js");
5
+ const utils_js_1 = require("../runtime/utils.js");
5
6
  function onLoad() {
6
7
  (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
8
+ (0, utils_js_1.assertIsNotProductionRuntime)();
7
9
  }
@@ -34,8 +34,7 @@ const getPageAssets_js_1 = require("../runtime/renderPage/getPageAssets.js");
34
34
  const resolveClientEntriesDev_js_1 = require("./resolveClientEntriesDev.js");
35
35
  const workaroundCssModuleHmr_js_1 = require("./plugins/workaroundCssModuleHmr.js");
36
36
  const vite6HmrRegressionWorkaround_js_1 = require("./plugins/vite6HmrRegressionWorkaround.js");
37
- (0, utils_js_2.assertNodeEnv_onVikePluginLoad)();
38
- (0, utils_js_2.markEnvAsVikePluginLoaded)();
37
+ (0, utils_js_2.markSetup_vikeVitePlugin)();
39
38
  assertViteVersion();
40
39
  (0, getPageAssets_js_1.setResolveClientEntriesDev)(resolveClientEntriesDev_js_1.resolveClientEntriesDev);
41
40
  // Return as `any` to avoid Plugin type mismatches when there are multiple Vite versions installed
@@ -54,7 +53,7 @@ function plugin(vikeConfig) {
54
53
  ...(0, extractAssetsPlugin_js_1.extractAssetsPlugin)(),
55
54
  (0, extractExportNamesPlugin_js_1.extractExportNamesPlugin)(),
56
55
  (0, suppressRollupWarning_js_1.suppressRollupWarning)(),
57
- (0, setGlobalContext_js_1.setGlobalContext)(),
56
+ ...(0, setGlobalContext_js_1.setGlobalContext)(),
58
57
  ...(0, index_js_4.importBuild)(),
59
58
  (0, baseUrls_js_1.baseUrls)(vikeConfig),
60
59
  (0, envVars_js_1.envVarsPlugin)(),
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.onLoad = onLoad;
4
4
  const assertIsNotBrowser_js_1 = require("../../utils/assertIsNotBrowser.js");
5
- const assertIsNotProductionRuntime_js_1 = require("../../utils/assertIsNotProductionRuntime.js");
5
+ const assertSetup_js_1 = require("../../utils/assertSetup.js");
6
6
  const assertNodeVersion_js_1 = require("../../utils/assertNodeVersion.js");
7
7
  function onLoad() {
8
8
  (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
9
9
  (0, assertNodeVersion_js_1.assertNodeVersion)();
10
10
  // Ensure we don't bloat the server runtime with heavy plugin dependencies such as esbuild
11
- (0, assertIsNotProductionRuntime_js_1.assertIsNotProductionRuntime)();
11
+ (0, assertSetup_js_1.assertIsNotProductionRuntime)();
12
12
  }
@@ -14,9 +14,6 @@ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
14
14
  const logErrorHint_js_1 = require("../../runtime/renderPage/logErrorHint.js");
15
15
  const buildConfig_js_1 = require("./buildConfig.js");
16
16
  let forceExit = false;
17
- (0, utils_js_1.assertWarning)(!(0, isViteCliCall_js_1.isViteCliCall)(), `Vite's CLI is deprecated ${picocolors_1.default.underline('https://vike.dev/migration/cli')}`, {
18
- onlyOnce: true
19
- });
20
17
  function autoFullBuild() {
21
18
  let config;
22
19
  let configVike;
@@ -33,14 +33,14 @@ function buildConfig() {
33
33
  let config;
34
34
  return [
35
35
  {
36
- name: 'vike:buildConfig:configResolved',
36
+ name: 'vike:buildConfig:post',
37
37
  apply: 'build',
38
38
  enforce: 'post',
39
39
  configResolved: {
40
40
  order: 'post',
41
41
  async handler(config_) {
42
42
  config = config_;
43
- (0, utils_js_1.assertNodeEnv_build)();
43
+ (0, utils_js_1.onSetupBuild)();
44
44
  assertRollupInput(config);
45
45
  const entries = await getEntries(config);
46
46
  (0, utils_js_1.assert)(Object.keys(entries).length > 0);
@@ -63,7 +63,7 @@ function buildConfig() {
63
63
  config: {
64
64
  order: 'post',
65
65
  handler(config) {
66
- (0, utils_js_1.assertNodeEnv_build)();
66
+ (0, utils_js_1.onSetupBuild)();
67
67
  isSsrBuild = (0, utils_js_1.viteIsSSR)(config);
68
68
  return {
69
69
  build: {
@@ -75,14 +75,15 @@ function buildConfig() {
75
75
  }
76
76
  },
77
77
  buildStart() {
78
- (0, utils_js_1.assertNodeEnv_build)();
78
+ (0, utils_js_1.onSetupBuild)();
79
79
  },
80
80
  async closeBundle() {
81
+ (0, utils_js_1.onSetupBuild)();
81
82
  await (0, fixServerAssets_js_1.fixServerAssets_assertCssTarget)(config);
82
83
  }
83
84
  },
84
85
  {
85
- name: 'vike:buildConfig:writeBundle',
86
+ name: 'vike:buildConfig:pre',
86
87
  apply: 'build',
87
88
  // Make sure other writeBundle() hooks are called after this writeBundle() hook.
88
89
  // - set_ASSETS_MAP() needs to be called before dist/server/ code is executed.
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pluginName = void 0;
4
- exports.pluginName = 'vike:commonConfig-1';
4
+ exports.pluginName = 'vike:commonConfig';
@@ -13,6 +13,8 @@ const path_1 = __importDefault(require("path"));
13
13
  const assertResolveAlias_js_1 = require("./commonConfig/assertResolveAlias.js");
14
14
  const pluginName_js_1 = require("./commonConfig/pluginName.js");
15
15
  const getEnvVarObject_js_1 = require("../shared/getEnvVarObject.js");
16
+ const isViteCliCall_js_1 = require("../shared/isViteCliCall.js");
17
+ const context_js_1 = require("../../api/context.js");
16
18
  function commonConfig() {
17
19
  return [
18
20
  {
@@ -23,7 +25,7 @@ function commonConfig() {
23
25
  }
24
26
  },
25
27
  {
26
- name: 'vike:commonConfig-2',
28
+ name: `${pluginName_js_1.pluginName}:post`,
27
29
  enforce: 'post',
28
30
  configResolved: {
29
31
  order: 'post',
@@ -35,6 +37,7 @@ function commonConfig() {
35
37
  (0, buildConfig_js_1.assertRollupInput)(config);
36
38
  (0, assertResolveAlias_js_1.assertResolveAlias)(config);
37
39
  assertEsm(config.root);
40
+ assertVikeCliOrApi(config);
38
41
  }
39
42
  },
40
43
  config: {
@@ -98,3 +101,22 @@ function assertSingleInstance(config) {
98
101
  const numberOfInstances = config.plugins.filter((o) => o.name === pluginName_js_1.pluginName).length;
99
102
  (0, utils_js_1.assertUsage)(numberOfInstances === 1, `Vike's Vite plugin (${picocolors_1.default.cyan("import vike from 'vike/plugin'")}) is being added ${numberOfInstances} times to the list of Vite plugins. Make sure to add it only once instead.`);
100
103
  }
104
+ function assertVikeCliOrApi(config) {
105
+ if ((0, context_js_1.isVikeCliOrApi)())
106
+ return;
107
+ if ((0, isViteCliCall_js_1.isViteCliCall)()) {
108
+ (0, utils_js_1.assertWarning)(false, `Vite's CLI is deprecated ${picocolors_1.default.underline('https://vike.dev/migration/cli')}`, {
109
+ onlyOnce: true
110
+ });
111
+ return;
112
+ }
113
+ if (config.server.middlewareMode) {
114
+ (0, utils_js_1.assertWarning)(false, `${picocolors_1.default.cyan('vite.createServer()')} is deprecated ${picocolors_1.default.underline('https://vike.dev/migration/cli#api')}`, {
115
+ onlyOnce: true
116
+ });
117
+ return;
118
+ }
119
+ (0, utils_js_1.assertWarning)(false, `Vite's JavaScript API is deprecated ${picocolors_1.default.underline('https://vike.dev/migration/cli#api')}`, {
120
+ onlyOnce: true
121
+ });
122
+ }
@@ -70,9 +70,6 @@ function devConfig() {
70
70
  (0, loggerVite_js_1.improveViteLogs)(config);
71
71
  }
72
72
  logDockerHint(config.server.host);
73
- },
74
- configureServer() {
75
- (0, utils_js_1.markEnvAsViteDev)();
76
73
  }
77
74
  },
78
75
  {
@@ -10,21 +10,24 @@ const promises_1 = __importDefault(require("fs/promises"));
10
10
  const fast_glob_1 = __importDefault(require("fast-glob"));
11
11
  const child_process_1 = require("child_process");
12
12
  const util_1 = require("util");
13
- const picocolors_1 = __importDefault(require("@brillout/picocolors"));
14
13
  const transpileAndExecuteFile_js_1 = require("./transpileAndExecuteFile.js");
15
14
  const execA = (0, util_1.promisify)(child_process_1.exec);
16
15
  const TOO_MANY_UNTRACKED_FILES = 5;
17
16
  (0, utils_js_1.assertIsNotProductionRuntime)();
18
17
  (0, utils_js_1.assertIsSingleModuleInstance)('crawlPlusFiles.ts');
19
18
  let gitIsNotUsable = false;
20
- async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev, crawlWithGit) {
19
+ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, crawlWithGit) {
21
20
  (0, utils_js_1.assertPosixPath)(userRootDir);
22
- (0, utils_js_1.assertPosixPath)(outDirAbsoluteFilesystem);
23
- let outDirRelativeFromUserRootDir = path_1.default.posix.relative(userRootDir, outDirAbsoluteFilesystem);
21
+ //*/
22
+ const outDirRelativeFromUserRootDir = null;
23
+ /*/
24
+ assertPosixPath(outDirAbsoluteFilesystem)
25
+ let outDirRelativeFromUserRootDir: string | null = path.posix.relative(userRootDir, outDirAbsoluteFilesystem)
24
26
  if (outDirRelativeFromUserRootDir.startsWith('../')) {
25
- // config.outDir is outside of config.root => it's going to be ignored anyways
26
- outDirRelativeFromUserRootDir = null;
27
+ // config.outDir is outside of config.root => it's going to be ignored anyways
28
+ outDirRelativeFromUserRootDir = null
27
29
  }
30
+ //*/
28
31
  (0, utils_js_1.assert)(outDirRelativeFromUserRootDir === null ||
29
32
  /* Not true if outDirRelativeFromUserRootDir starts with a hidden directory (i.e. a directory with a name that starts with `.`)
30
33
  !outDirRelativeFromUserRootDir.startsWith('.') &&
@@ -32,7 +35,6 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev, craw
32
35
  (!outDirRelativeFromUserRootDir.startsWith('./') &&
33
36
  //
34
37
  !outDirRelativeFromUserRootDir.startsWith('../')));
35
- const timeBefore = new Date().getTime();
36
38
  // Crawl
37
39
  let files = [];
38
40
  const res = crawlWithGit !== false && (await gitLsFiles(userRootDir, outDirRelativeFromUserRootDir));
@@ -48,18 +50,6 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev, craw
48
50
  }
49
51
  // Filter build files
50
52
  files = files.filter((filePath) => !(0, transpileAndExecuteFile_js_1.isTemporaryBuildFile)(filePath));
51
- // Check performance
52
- {
53
- const timeAfter = new Date().getTime();
54
- const timeSpent = timeAfter - timeBefore;
55
- if (isDev) {
56
- // We only warn in dev, because while building it's expected to take a long time as crawling is competing for resources with other tasks.
57
- // Although, in dev, it's also competing for resources e.g. with Vite's `optimizeDeps`.
58
- (0, utils_js_1.assertWarning)(timeSpent < 3 * 1000, `Crawling your ${picocolors_1.default.cyan('+')} files took an unexpected long time (${(0, utils_js_1.humanizeTime)(timeSpent)}). If you consistently get this warning, then consider reaching out on GitHub.`, {
59
- onlyOnce: 'slow-crawling'
60
- });
61
- }
62
- }
63
53
  // Normalize
64
54
  const plusFiles = files.map((filePath) => {
65
55
  // Both `$ git-ls files` and fast-glob return posix paths
@@ -86,8 +86,8 @@ async function isV1Design(config, isDev) {
86
86
  const isV1Design = pageConfigs.length > 0;
87
87
  return isV1Design;
88
88
  }
89
- async function loadInterfaceFiles(userRootDir, outDirRoot, isDev, crawlWithGit) {
90
- const plusFiles = await findPlusFiles(userRootDir, outDirRoot, isDev, crawlWithGit);
89
+ async function loadInterfaceFiles(userRootDir, outDirRoot, crawlWithGit) {
90
+ const plusFiles = await findPlusFiles(userRootDir, outDirRoot, crawlWithGit);
91
91
  const configFiles = [];
92
92
  const valueFiles = [];
93
93
  plusFiles.forEach((f) => {
@@ -201,7 +201,7 @@ async function loadVikeConfig_withErrorHandling(userRootDir, outDirRoot, isDev,
201
201
  let ret;
202
202
  let err;
203
203
  try {
204
- ret = await loadVikeConfig(userRootDir, outDirRoot, isDev, crawlWithGit);
204
+ ret = await loadVikeConfig(userRootDir, outDirRoot, crawlWithGit);
205
205
  }
206
206
  catch (err_) {
207
207
  hasError = true;
@@ -238,8 +238,8 @@ async function loadVikeConfig_withErrorHandling(userRootDir, outDirRoot, isDev,
238
238
  }
239
239
  }
240
240
  }
241
- async function loadVikeConfig(userRootDir, outDirRoot, isDev, crawlWithGit) {
242
- const interfaceFilesByLocationId = await loadInterfaceFiles(userRootDir, outDirRoot, isDev, crawlWithGit);
241
+ async function loadVikeConfig(userRootDir, outDirRoot, crawlWithGit) {
242
+ const interfaceFilesByLocationId = await loadInterfaceFiles(userRootDir, outDirRoot, crawlWithGit);
243
243
  const importedFilesLoaded = {};
244
244
  const { globalVikeConfig, pageConfigGlobal } = await getGlobalConfigs(interfaceFilesByLocationId, userRootDir, importedFilesLoaded);
245
245
  const pageConfigs = await Promise.all((0, utils_js_1.objectEntries)(interfaceFilesByLocationId)
@@ -785,8 +785,8 @@ function getComputed(configValueSources, configDefinitions) {
785
785
  });
786
786
  return configValuesComputed;
787
787
  }
788
- async function findPlusFiles(userRootDir, outDirRoot, isDev, crawlWithGit) {
789
- const files = await (0, crawlPlusFiles_js_1.crawlPlusFiles)(userRootDir, outDirRoot, isDev, crawlWithGit);
788
+ async function findPlusFiles(userRootDir, outDirRoot, crawlWithGit) {
789
+ const files = await (0, crawlPlusFiles_js_1.crawlPlusFiles)(userRootDir, outDirRoot, crawlWithGit);
790
790
  const plusFiles = files.map(({ filePathAbsoluteUserRootDir }) => (0, getFilePath_js_1.getFilePathResolved)({ filePathAbsoluteUserRootDir, userRootDir }));
791
791
  return plusFiles;
792
792
  }
@@ -34,7 +34,6 @@ function previewConfig() {
34
34
  - This ugly hack to set appType for preview won't be need once https://github.com/vitejs/vite/pull/14855 is merged.
35
35
  config.appType = 'mpa'
36
36
  */
37
- (0, utils_js_1.markEnvAsVitePreview)();
38
37
  return () => {
39
38
  assertDist();
40
39
  /* We don't use this condition (we wrongfully always use the SSR middleware) because of the regression introduced by https://github.com/vitejs/vite/pull/14756 which stops servering .html files when `appType: 'custom'`.
@@ -4,25 +4,40 @@ exports.setGlobalContext = setGlobalContext;
4
4
  const globalContext_js_1 = require("../../runtime/globalContext.js");
5
5
  const utils_js_1 = require("../utils.js");
6
6
  function setGlobalContext() {
7
- return {
8
- name: 'vike:setGlobalContext',
9
- enforce: 'pre',
10
- configureServer: {
11
- order: 'pre',
12
- handler(viteDevServer) {
13
- (0, globalContext_js_1.setGlobalContext_viteDevServer)(viteDevServer);
7
+ return [
8
+ {
9
+ name: 'vike:setGlobalContext:pre',
10
+ enforce: 'pre',
11
+ configureServer: {
12
+ order: 'pre',
13
+ handler(viteDevServer) {
14
+ (0, globalContext_js_1.setGlobalContext_viteDevServer)(viteDevServer);
15
+ (0, utils_js_1.markSetup_viteDevServer)();
16
+ }
17
+ },
18
+ configurePreviewServer() {
19
+ (0, utils_js_1.markSetup_vitePreviewServer)();
20
+ },
21
+ config: {
22
+ order: 'pre',
23
+ handler(_, env) {
24
+ const isViteDev = (0, utils_js_1.isDevCheck)(env);
25
+ (0, globalContext_js_1.setGlobalContext_isViteDev)(isViteDev);
26
+ (0, utils_js_1.markSetup_isViteDev)(isViteDev);
27
+ }
14
28
  }
15
29
  },
16
- config: {
17
- handler(_, env) {
18
- const isDev = (0, utils_js_1.isDevCheck)(env);
19
- (0, globalContext_js_1.setGlobalContext_isDev)(isDev);
30
+ {
31
+ name: 'vike:setGlobalContext:post',
32
+ enforce: 'post',
33
+ configResolved: {
34
+ order: 'post',
35
+ handler(config) {
36
+ const { outDirRoot } = (0, utils_js_1.getOutDirs)(config);
37
+ (0, utils_js_1.assertFilePathAbsoluteFilesystem)(outDirRoot); // Needed for loadImportBuild(outDir) of @brillout/vite-plugin-server-entry
38
+ (0, globalContext_js_1.setGlobalContext_viteConfig)(config, outDirRoot);
39
+ }
20
40
  }
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);
26
41
  }
27
- };
42
+ ];
28
43
  }
@@ -56,15 +56,15 @@ const getVikeConfig_js_1 = require("../plugin/plugins/importUserCode/v1-design/g
56
56
  const logErrorHint_js_1 = require("../runtime/renderPage/logErrorHint.js");
57
57
  const executeHook_js_1 = require("../../shared/hooks/executeHook.js");
58
58
  const getConfigValueBuildTime_js_1 = require("../../shared/page-configs/getConfigValueBuildTime.js");
59
- const enhanceViteConfig_js_1 = require("../api/enhanceViteConfig.js");
59
+ const prepareViteApiCall_js_1 = require("../api/prepareViteApiCall.js");
60
60
  async function runPrerenderFromAPI(options = {}) {
61
- await runPrerender(options, 'prerender()');
61
+ return await runPrerender(options, 'prerender()');
62
62
  // - We purposely propagate the error to the user land, so that the error interrupts the user land. It's also, I guess, a nice-to-have that the user has control over the error.
63
63
  // - We don't use logErrorHint() because we don't have control over what happens with the error. For example, if the user land purposely swallows the error then the hint shouldn't be logged. Also, it's best if the hint is shown to the user *after* the error, but we cannot do/guarentee that.
64
64
  }
65
65
  async function runPrerenderFromCLIPrerenderCommand() {
66
66
  try {
67
- const { viteConfigEnhanced } = await (0, enhanceViteConfig_js_1.enhanceViteConfig)(undefined, 'prerender');
67
+ const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(undefined, 'prerender');
68
68
  await runPrerender({ viteConfig: viteConfigEnhanced }, '$ vike prerender');
69
69
  }
70
70
  catch (err) {
@@ -89,13 +89,13 @@ async function runPrerenderFromAutoRun(viteConfig, forceExit) {
89
89
  }
90
90
  async function runPrerender(options = {}, standaloneTrigger) {
91
91
  checkOutdatedOptions(options);
92
+ (0, utils_js_1.onSetupPrerender)();
92
93
  (0, globalContext_js_1.setGlobalContext_isPrerendering)();
93
94
  (0, getHook_js_1.getHook_setIsPrerenderering)();
94
95
  const logLevel = !!options.onPagePrerender ? 'warn' : 'info';
95
96
  if (logLevel === 'info') {
96
97
  console.log(`${picocolors_1.default.cyan(`vike v${utils_js_1.projectInfo.projectVersion}`)} ${picocolors_1.default.green('pre-rendering HTML...')}`);
97
98
  }
98
- (0, utils_js_1.handleNodeEnv_prerender)();
99
99
  await disableReactStreaming();
100
100
  const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, 'vike pre-rendering', 'production');
101
101
  assertLoadedConfig(viteConfig, options);
@@ -143,6 +143,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
143
143
  console.log(`${picocolors_1.default.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
144
144
  }
145
145
  warnMissingPages(prerenderedPageContexts, doNotPrerenderList, renderContext, partial);
146
+ return { viteConfig };
146
147
  }
147
148
  async function collectDoNoPrerenderList(renderContext, pageConfigs, doNotPrerenderList, concurrencyLimit) {
148
149
  // V1 design
@@ -27,7 +27,7 @@ __exportStar(require("../../utils/isPropertyGetter.js"), exports);
27
27
  __exportStar(require("../../utils/filesystemPathHandling.js"), exports);
28
28
  __exportStar(require("../../utils/urlToFile.js"), exports);
29
29
  __exportStar(require("../../utils/isPlainObject.js"), exports);
30
- __exportStar(require("../../utils/assertNodeEnv.js"), exports);
30
+ __exportStar(require("../../utils/assertSetup.js"), exports);
31
31
  __exportStar(require("../../utils/pLimit.js"), exports);
32
32
  __exportStar(require("../../utils/isFilePathAbsoluteFilesystem.js"), exports);
33
33
  __exportStar(require("../../utils/isArray.js"), exports);