vike 0.4.256-commit-3041693 → 0.4.256-commit-1576f08

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.
@@ -9,7 +9,7 @@ declare const optimizeDeps: {
9
9
  };
10
10
  readonly ssr: {
11
11
  readonly optimizeDeps: {
12
- readonly exclude: ["@brillout/import", "@brillout/json-serializer", "@brillout/picocolors", "@brillout/vite-plugin-server-entry", "vike"];
12
+ readonly exclude: ["@brillout/import", "@brillout/json-serializer", "@brillout/vite-plugin-server-entry", "vike"];
13
13
  };
14
14
  };
15
15
  };
@@ -55,7 +55,8 @@ const optimizeDeps = {
55
55
  exclude: [
56
56
  '@brillout/import',
57
57
  '@brillout/json-serializer',
58
- '@brillout/picocolors',
58
+ // FIXME Breaks @cloudflare/vite-plugin. Remove me if CI passes
59
+ // '@brillout/picocolors',
59
60
  '@brillout/vite-plugin-server-entry',
60
61
  'vike',
61
62
  ],
@@ -8,7 +8,7 @@ declare function getDeployConfigs(pageId: string, page: PageConfigPublicWithRout
8
8
  isr: {
9
9
  expiration: number;
10
10
  } | undefined;
11
- edge: boolean;
11
+ edge: boolean | undefined;
12
12
  };
13
13
  } | null;
14
14
  export declare function getRoutePageContextJson(routeIr: ReturnType<typeof fromVike>): {
@@ -1,57 +1,43 @@
1
1
  export { getDeployConfigs };
2
- import pc from '@brillout/picocolors';
3
2
  import { assert, assertUsage, assertWarning } from '../../../../utils/assert.js';
4
3
  import { isObject } from '../../../../utils/isObject.js';
5
4
  import '../../assertEnvVite.js';
5
+ import { isCallable } from '../../../../utils/isCallable.js';
6
6
  function getDeployConfigs(pageId, page) {
7
- const route = typeof page.route === 'string' ? page.route : null;
8
- // Vercel specific configs
9
- const rawIsr = extractIsr(page.config);
10
- let isr = assertIsr(rawIsr);
11
- const edge = extractEdge(page.config);
12
- const isrOrEdge = isr ? 'isr' : edge ? 'edge' : null;
13
- if (typeof page.route === 'function' && isrOrEdge) {
14
- assertWarning(false, `Page ${pageId}: ${pc.cyan(isrOrEdge)} is not supported when using route function. Remove ${pc.cyan(isrOrEdge)} config or use a route string if possible.`, { onlyOnce: true });
15
- isr = null;
7
+ const { route } = page;
8
+ if (!route)
9
+ return null;
10
+ // Vercel setting: +edge
11
+ const { edge } = page.config;
12
+ if (edge) {
13
+ assertUsage(typeof edge === 'boolean', '+edge must be a boolean');
16
14
  }
17
- if (edge && rawIsr !== null && typeof rawIsr === 'object') {
18
- assertUsage(false, `Page ${pageId}: ISR cannot be enabled for edge functions. Remove ${pc.cyan('isr')} config or set \`{ edge: false }\`.`);
15
+ // Vercel setting: +isr
16
+ let { isr } = page.config;
17
+ if (isr) {
18
+ assertUsage(isObject(isr), '+isr must be an object');
19
+ assertUsage(typeof isr.expiration === 'number' && isr.expiration > 0, '+isr.expiration must be a positive number');
19
20
  }
20
- if (isrOrEdge && route) {
21
- return {
22
- route,
23
- // route: [...new Set([...toRou3(routeIr), ...getRoutePageContextJson(routeIr)])],
24
- // Supported by vite-plugin-vercel@11
25
- vercel: {
26
- isr: isr ? { expiration: isr } : undefined,
27
- edge: Boolean(edge),
28
- },
29
- };
21
+ if (edge) {
22
+ assertWarning(!isr, `Page ${pageId} — ISR isn't supported for edge functions — remove +isr or +edge`, {
23
+ onlyOnce: true,
24
+ });
25
+ isr = undefined;
30
26
  }
31
- return null;
32
- }
33
- function extractIsr(pageConfig) {
34
- if (!pageConfig.isr)
35
- return null;
36
- const isr = pageConfig.isr;
37
- assertUsage(isObject(isr) &&
38
- typeof isr.expiration === 'number' &&
39
- isr.expiration > 0, ' `{ expiration }` must be a positive number');
40
- return isr;
41
- }
42
- function assertIsr(isr) {
43
- if (isr === null || isr === undefined)
27
+ if (!edge && !isr)
44
28
  return null;
45
- return isr.expiration;
46
- }
47
- function extractEdge(exports) {
48
- if (exports === null || typeof exports !== 'object')
49
- return null;
50
- if (!('edge' in exports))
29
+ if (isCallable(route)) {
30
+ const errMsg = (configName) => `The route of the page ${pageId} is defined via a Route Function — ${configName} isn't supported. Remove ${configName} or define the page's route using a Route String (or Filesytem Routing) instead of a Route Function.`;
31
+ assertWarning(!isr, errMsg('+isr'), { onlyOnce: true });
32
+ assertWarning(!edge, errMsg('+edge'), { onlyOnce: true });
51
33
  return null;
52
- const edge = exports.edge;
53
- assertUsage(typeof edge === 'boolean', ' `{ edge }` must be a boolean');
54
- return edge;
34
+ }
35
+ return {
36
+ route,
37
+ // route: [...new Set([...toRou3(routeIr), ...getRoutePageContextJson(routeIr)])],
38
+ // Supported by vite-plugin-vercel@11
39
+ vercel: { isr, edge },
40
+ };
55
41
  }
56
42
  export function getRoutePageContextJson(routeIr) {
57
43
  const lastSegment = routeIr.pathname.at(-1);
@@ -4,23 +4,23 @@ import '../../assertEnvVite.js';
4
4
  export function getServerInfo(vikeConfig) {
5
5
  let serverEntryId;
6
6
  let serverFilePath = null;
7
- const serverConfig = vikeConfig.config.server;
8
- // universal-deploy support manually disabled by user
7
+ let serverEntryVike;
8
+ // universal-deploy support must be manually enabled
9
+ const serverConfig = vikeConfig.config.server ?? false;
9
10
  if (serverConfig === false)
10
11
  return;
11
12
  const serverPlusFile = vikeConfig._pageConfigGlobal.configValueSources.server?.[0];
12
- if (serverPlusFile) {
13
+ if (serverPlusFile?.valueIsDefinedByPlusValueFile) {
13
14
  assert('filePathAbsoluteFilesystem' in serverPlusFile.definedAt);
14
15
  serverFilePath = serverPlusFile.definedAt.filePathAbsoluteFilesystem;
15
16
  assert(serverFilePath);
16
17
  serverEntryId = serverFilePath;
18
+ serverEntryVike = serverFilePath;
17
19
  }
18
20
  else {
19
21
  serverEntryId = catchAllEntry;
22
+ serverEntryVike = 'vike/fetch';
20
23
  }
21
- if (serverConfig !== true && !serverFilePath)
22
- return;
23
- const serverEntryVike = serverFilePath ?? 'vike/fetch';
24
24
  return {
25
25
  // Used to filter which module ID to transform.
26
26
  // It points to a fully resolved server entry or the virtual universal-deploy catchAll entry.
@@ -1,7 +1,7 @@
1
1
  export { pluginUniversalDeploy };
2
2
  import { toRou3 } from 'convert-route';
3
3
  import { addEntry } from '@universal-deploy/store';
4
- import universalDeploy from '@universal-deploy/vite';
4
+ import universalDeploy, { resolveTargets } from '@universal-deploy/vite';
5
5
  import { fromVike } from 'convert-route/vike';
6
6
  import { pluginServerEntryInject } from './pluginUniversalDeploy/pluginServerEntryInject.js';
7
7
  import { getDeployConfigs, getRoutePageContextJson } from './pluginUniversalDeploy/getDeployConfigs.js';
@@ -10,14 +10,21 @@ import { hasVikeServerOrVikePhoton } from './pluginUniversalDeploy/detectDepreca
10
10
  import { getServerInfo } from './pluginUniversalDeploy/getServerInfo.js';
11
11
  import { pluginServerEntryAlias } from './pluginUniversalDeploy/pluginServerEntryAlias.js';
12
12
  import { pluginUnwrapProdOptions } from './pluginUniversalDeploy/pluginUnwrapProdOptions.js';
13
- import '../assertEnvVite.js';
14
13
  import { unique } from '../../../utils/unique.js';
14
+ import { assertUsage } from '../../../utils/assert.js';
15
+ import '../assertEnvVite.js';
15
16
  function pluginUniversalDeploy(vikeConfig) {
16
17
  if (hasVikeServerOrVikePhoton(vikeConfig))
17
18
  return [];
18
19
  const serverInfo = getServerInfo(vikeConfig);
19
20
  if (!serverInfo)
20
- return [];
21
+ return [
22
+ resolveTargets(({ vercel, node, netlify }) => {
23
+ // Cloudflare is supported even without universal-deploy
24
+ const target = vercel ? 'Vercel' : node ? 'Node.js' : netlify ? 'Netlify' : null;
25
+ assertUsage(target === null, `Cannot target ${target} without a server entry. Either set \`server: true\` in +config.js or create a \`+server.js\` file.`);
26
+ }),
27
+ ];
21
28
  const { serverEntryVike, serverEntryId, serverFilePath } = serverInfo;
22
29
  return [
23
30
  ...universalDeploy(),
@@ -227,7 +227,7 @@ const configDefinitionsBuiltIn = {
227
227
  global: true,
228
228
  },
229
229
  server: {
230
- env: { server: true },
230
+ env: { server: true, config: true },
231
231
  global: true,
232
232
  },
233
233
  cli: {
@@ -1,6 +1,7 @@
1
1
  export type { Server };
2
2
  import type { Fetchable, ServerOptions } from '@universal-deploy/store';
3
- /** Server options.
3
+ /**
4
+ * Server settings.
4
5
  *
5
6
  * https://vike.dev/server
6
7
  */
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.256-commit-3041693";
1
+ export declare const PROJECT_VERSION: "0.4.256-commit-1576f08";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.256-commit-3041693';
2
+ export const PROJECT_VERSION = '0.4.256-commit-1576f08';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.256-commit-3041693",
3
+ "version": "0.4.256-commit-1576f08",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {
@@ -133,7 +133,7 @@
133
133
  "@brillout/picocolors": "^1.0.30",
134
134
  "@brillout/vite-plugin-server-entry": "0.7.18",
135
135
  "@universal-deploy/store": "^0.2.1",
136
- "@universal-deploy/vite": "^0.1.2",
136
+ "@universal-deploy/vite": "^0.1.3",
137
137
  "@universal-middleware/core": "^0.4.17",
138
138
  "@universal-middleware/node": "^0.1.0",
139
139
  "cac": "^6.0.0",