vike 0.4.225-commit-2b7971f → 0.4.225-commit-6fc12fc

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 (85) hide show
  1. package/dist/cjs/node/api/build.js +7 -7
  2. package/dist/cjs/node/api/dev.js +2 -2
  3. package/dist/cjs/node/api/prepareViteApiCall.js +45 -30
  4. package/dist/cjs/node/api/prerender.js +2 -3
  5. package/dist/cjs/node/api/preview.js +25 -6
  6. package/dist/cjs/node/api/utils.js +1 -0
  7. package/dist/cjs/node/cli/entry.js +4 -2
  8. package/dist/cjs/node/cli/parseCli.js +10 -4
  9. package/dist/cjs/node/plugin/plugins/build/pluginAutoFullBuild.js +2 -2
  10. package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +51 -0
  11. package/dist/cjs/node/plugin/plugins/build.js +3 -1
  12. package/dist/cjs/node/plugin/plugins/commonConfig.js +4 -0
  13. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -0
  14. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +19 -6
  15. package/dist/cjs/node/plugin/shared/getEnvVarObject.js +7 -0
  16. package/dist/cjs/node/prerender/runPrerender.js +2 -2
  17. package/dist/cjs/node/prerender/utils.js +1 -1
  18. package/dist/cjs/node/runtime/globalContext.js +8 -4
  19. package/dist/cjs/node/runtime/utils.js +1 -1
  20. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +2 -2
  21. package/dist/cjs/node/shared/utils.js +1 -1
  22. package/dist/cjs/node/shared/virtual-files.js +14 -10
  23. package/dist/cjs/shared/modifyUrl.js +3 -5
  24. package/dist/cjs/shared/modifyUrlSameOrigin.js +42 -0
  25. package/dist/cjs/shared/utils.js +2 -1
  26. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  27. package/dist/cjs/utils/isNullish.js +16 -0
  28. package/dist/cjs/utils/objectFilter.js +10 -0
  29. package/dist/cjs/utils/pick.js +12 -0
  30. package/dist/esm/client/client-routing-runtime/navigate.d.ts +6 -5
  31. package/dist/esm/client/client-routing-runtime/navigate.js +6 -2
  32. package/dist/esm/client/client-routing-runtime/normalizeUrlArgument.js +1 -1
  33. package/dist/esm/node/api/build.js +7 -7
  34. package/dist/esm/node/api/dev.js +2 -2
  35. package/dist/esm/node/api/prepareViteApiCall.d.ts +2 -1
  36. package/dist/esm/node/api/prepareViteApiCall.js +47 -32
  37. package/dist/esm/node/api/prerender.js +2 -3
  38. package/dist/esm/node/api/preview.d.ts +1 -1
  39. package/dist/esm/node/api/preview.js +22 -6
  40. package/dist/esm/node/api/utils.d.ts +1 -0
  41. package/dist/esm/node/api/utils.js +1 -0
  42. package/dist/esm/node/cli/entry.js +4 -2
  43. package/dist/esm/node/cli/parseCli.js +10 -4
  44. package/dist/esm/node/plugin/plugins/build/pluginAutoFullBuild.js +2 -2
  45. package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.d.ts +3 -0
  46. package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +49 -0
  47. package/dist/esm/node/plugin/plugins/build.js +3 -1
  48. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +3 -1
  49. package/dist/esm/node/plugin/plugins/commonConfig.js +4 -0
  50. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -0
  51. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +8 -0
  52. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +19 -6
  53. package/dist/esm/node/plugin/shared/getEnvVarObject.js +7 -0
  54. package/dist/esm/node/prerender/runPrerender.js +2 -2
  55. package/dist/esm/node/prerender/utils.d.ts +1 -1
  56. package/dist/esm/node/prerender/utils.js +1 -1
  57. package/dist/esm/node/runtime/globalContext.d.ts +2 -3
  58. package/dist/esm/node/runtime/globalContext.js +8 -4
  59. package/dist/esm/node/runtime/utils.d.ts +1 -1
  60. package/dist/esm/node/runtime/utils.js +1 -1
  61. package/dist/esm/node/runtime-dev/createDevMiddleware.js +2 -2
  62. package/dist/esm/node/shared/utils.d.ts +1 -1
  63. package/dist/esm/node/shared/utils.js +1 -1
  64. package/dist/esm/node/shared/virtual-files.d.ts +2 -0
  65. package/dist/esm/node/shared/virtual-files.js +14 -10
  66. package/dist/esm/shared/modifyUrl.d.ts +2 -2
  67. package/dist/esm/shared/modifyUrl.js +3 -5
  68. package/dist/esm/shared/modifyUrlSameOrigin.d.ts +9 -0
  69. package/dist/esm/shared/modifyUrlSameOrigin.js +40 -0
  70. package/dist/esm/shared/page-configs/Config.d.ts +6 -0
  71. package/dist/esm/shared/utils.d.ts +2 -1
  72. package/dist/esm/shared/utils.js +2 -1
  73. package/dist/esm/types/index.d.ts +0 -1
  74. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  75. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  76. package/dist/esm/utils/isNullish.d.ts +3 -0
  77. package/dist/esm/utils/isNullish.js +11 -0
  78. package/dist/esm/utils/objectFilter.d.ts +1 -0
  79. package/dist/esm/utils/objectFilter.js +7 -0
  80. package/dist/esm/utils/pick.d.ts +1 -0
  81. package/dist/esm/utils/pick.js +9 -0
  82. package/package.json +2 -2
  83. package/dist/cjs/utils/isNotNullish.js +0 -5
  84. package/dist/esm/utils/isNotNullish.d.ts +0 -1
  85. package/dist/esm/utils/isNotNullish.js +0 -1
@@ -5,6 +5,7 @@ export { reloadVikeConfig };
5
5
  export { isV1Design };
6
6
  export { getConfVal };
7
7
  export { getConfigDefinitionOptional };
8
+ export { getVikeConfigFromCliOrEnv };
8
9
  export { isOverriden };
9
10
  export type { VikeConfigObject };
10
11
  import type { PageConfigGlobalBuildTime, ConfigValueSource, PageConfigBuildTime } from '../../../../../shared/page-configs/PageConfig.js';
@@ -26,6 +27,13 @@ declare function getVikeConfig(config: ResolvedConfig, { doNotRestartViteOnError
26
27
  declare function getVikeConfig2(userRootDir: string, isDev: boolean, vikeVitePluginOptions: unknown): Promise<VikeConfigObject>;
27
28
  declare function getVikeConfigOptional(): Promise<null | VikeConfigObject>;
28
29
  declare function isV1Design(config: ResolvedConfig | UserConfig): boolean;
30
+ declare function getVikeConfigFromCliOrEnv(): {
31
+ vikeConfigFromCliOrEnv: {
32
+ [x: string]: unknown;
33
+ };
34
+ configFromCliOptions: import("../../../../cli/parseCli.js").CliOptions | null;
35
+ configFromEnvVar: Record<string, unknown> | null;
36
+ };
29
37
  declare function getConfigDefinitionOptional(configDefinitions: ConfigDefinitions, configName: string): ConfigDefinitionInternal | null;
30
38
  declare function getConfVal(plusFile: PlusFile, configName: string): null | {
31
39
  value: unknown;
@@ -5,6 +5,7 @@ export { reloadVikeConfig };
5
5
  export { isV1Design };
6
6
  export { getConfVal };
7
7
  export { getConfigDefinitionOptional };
8
+ export { getVikeConfigFromCliOrEnv };
8
9
  export { isOverriden };
9
10
  import { assertPosixPath, assert, isObject, assertUsage, assertWarning, objectEntries, hasProp, includes, assertIsNotProductionRuntime, getMostSimilar, joinEnglish, assertKeys, objectKeys, objectFromEntries, unique, isCallable, makeFirst, lowerFirst, makeLast, assertIsSingleModuleInstance } from '../../../utils.js';
10
11
  import { configDefinitionsBuiltIn } from './getVikeConfig/configDefinitionsBuiltIn.js';
@@ -390,15 +391,14 @@ function setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved) {
390
391
  if (apiOperation?.options.vikeConfig) {
391
392
  addSources(apiOperation.options.vikeConfig, { definedBy: 'api', operation: apiOperation.operation }, false);
392
393
  }
394
+ const { configFromCliOptions, configFromEnvVar } = getVikeConfigFromCliOrEnv();
393
395
  // Vike CLI options
394
- const cliOptions = getCliOptions();
395
- if (cliOptions) {
396
- addSources(cliOptions, { definedBy: 'cli' }, true);
396
+ if (configFromCliOptions) {
397
+ addSources(configFromCliOptions, { definedBy: 'cli' }, true);
397
398
  }
398
399
  // VIKE_CONFIG [highest precedence]
399
- const configFromEnv = getEnvVarObject('VIKE_CONFIG');
400
- if (configFromEnv) {
401
- addSources(configFromEnv, { definedBy: 'env' }, false);
400
+ if (configFromEnvVar) {
401
+ addSources(configFromEnvVar, { definedBy: 'env' }, false);
402
402
  }
403
403
  return;
404
404
  function addSources(configValues, definedBy, exitOnError) {
@@ -411,6 +411,19 @@ function setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved) {
411
411
  });
412
412
  }
413
413
  }
414
+ function getVikeConfigFromCliOrEnv() {
415
+ const configFromCliOptions = getCliOptions();
416
+ const configFromEnvVar = getEnvVarObject('VIKE_CONFIG');
417
+ const vikeConfigFromCliOrEnv = {
418
+ ...configFromCliOptions, // Lower precedence
419
+ ...configFromEnvVar // Higher precedence
420
+ };
421
+ return {
422
+ vikeConfigFromCliOrEnv,
423
+ configFromCliOptions,
424
+ configFromEnvVar
425
+ };
426
+ }
414
427
  function getSourceNonConfigFile(configName, value, definedAt) {
415
428
  assert(includes(objectKeys(configDefinitionsBuiltIn), configName));
416
429
  const configDef = configDefinitionsBuiltIn[configName];
@@ -18,8 +18,15 @@ function parseJson5(valueStr, what) {
18
18
  value = JSON5.parse(valueStr);
19
19
  }
20
20
  catch (err) {
21
+ if (isNotJavaScriptLike(valueStr)) {
22
+ // Interpret as string
23
+ return valueStr;
24
+ }
21
25
  console.error(err);
22
26
  assertUsage(false, `Cannot parse ${pc.cyan(what)} (see error above) because it's set to the following which isn't a valid JSON5 string: ${pc.bold(valueStr)}`);
23
27
  }
24
28
  return value;
25
29
  }
30
+ function isNotJavaScriptLike(valueStr) {
31
+ return ![':', ',', '{', '}', '(', ')'].some((c) => valueStr.includes(c));
32
+ }
@@ -38,8 +38,8 @@ async function runPrerenderFromAPI(options = {}) {
38
38
  }
39
39
  async function runPrerenderFromCLIPrerenderCommand() {
40
40
  try {
41
- const { viteConfigEnhanced } = await prepareViteApiCall({}, 'prerender');
42
- await runPrerender({ viteConfig: viteConfigEnhanced }, '$ vike prerender');
41
+ const { viteConfigFromUserEnhanced } = await prepareViteApiCall({}, 'prerender');
42
+ await runPrerender({ viteConfig: viteConfigFromUserEnhanced }, '$ vike prerender');
43
43
  }
44
44
  catch (err) {
45
45
  console.error(err);
@@ -15,4 +15,4 @@ export * from '../../utils/isArray.js';
15
15
  export * from '../../utils/isObject.js';
16
16
  export * from '../../utils/changeEnumerable.js';
17
17
  export * from '../../utils/makePublicCopy.js';
18
- export * from '../../utils/isNotNullish.js';
18
+ export * from '../../utils/isNullish.js';
@@ -17,4 +17,4 @@ export * from '../../utils/isArray.js';
17
17
  export * from '../../utils/isObject.js';
18
18
  export * from '../../utils/changeEnumerable.js';
19
19
  export * from '../../utils/makePublicCopy.js';
20
- export * from '../../utils/isNotNullish.js';
20
+ export * from '../../utils/isNullish.js';
@@ -21,7 +21,6 @@ export type { GlobalContextPublic };
21
21
  import type { ViteManifest } from '../shared/ViteManifest.js';
22
22
  import type { ResolvedConfig, ViteDevServer } from 'vite';
23
23
  import type { PageConfigUserFriendly, PageConfigsUserFriendly } from '../../shared/page-configs/getPageConfigUserFriendly.js';
24
- import type { ConfigVitePluginServerEntry } from '@brillout/vite-plugin-server-entry/plugin';
25
24
  import { type BaseUrlsResolved } from '../shared/resolveBase.js';
26
25
  type PageRuntimeInfo = Awaited<ReturnType<typeof getUserFiles>>;
27
26
  type GlobalContextInternal = GlobalContext & {
@@ -84,11 +83,11 @@ type BuildInfo = {
84
83
  viteConfigRuntime: {
85
84
  _baseViteOriginal: string;
86
85
  vitePluginServerEntry: {
87
- inject?: NonNullable<ConfigVitePluginServerEntry['vitePluginServerEntry']>['inject'];
86
+ inject?: boolean;
88
87
  };
89
88
  };
90
89
  };
91
90
  declare function assertBuildInfo(buildInfo: unknown): asserts buildInfo is BuildInfo;
92
- declare function getViteConfigRuntime(viteConfig: ResolvedConfig & ConfigVitePluginServerEntry): BuildInfo['viteConfigRuntime'];
91
+ declare function getViteConfigRuntime(viteConfig: ResolvedConfig): BuildInfo['viteConfigRuntime'];
93
92
  declare function updateUserFiles(): Promise<void>;
94
93
  declare function clearGlobalContext(): void;
@@ -308,10 +308,14 @@ async function loadBuildEntry(outDir) {
308
308
  globalObject.buildEntry = globalObject.buildEntryPrevious;
309
309
  }
310
310
  assert(globalObject.buildEntry);
311
- assertWarning(!globalObject.buildInfo?.viteConfigRuntime.vitePluginServerEntry.inject,
312
- // TODO/soon: show precise path
313
- // TODO/soon: make this warning work on test/vike-node/
314
- `Run the server production build (e.g. ${pc.cyan('$ node dist/server/index.mjs')}) instead of running the original server entry (e.g. ${pc.cyan('$ ts-node server/index.ts')})`, { onlyOnce: true });
311
+ assertWarning(
312
+ // vike-server => `vitePluginServerEntry.inject === true`
313
+ // vike-node => `vitePluginServerEntry.inject === [ 'index' ]`
314
+ globalObject.buildInfo?.viteConfigRuntime.vitePluginServerEntry.inject !== true,
315
+ /* TO-DO/eventually:
316
+ !!globalObject.buildInfo?.viteConfigRuntime.vitePluginServerEntry.inject,
317
+ */
318
+ `Run the built server entry (e.g. ${pc.cyan('$ node dist/server/index.mjs')}) instead of the original server entry (e.g. ${pc.cyan('$ ts-node server/index.ts')})`, { onlyOnce: true });
315
319
  }
316
320
  const { buildEntry } = globalObject;
317
321
  assertBuildEntry(buildEntry);
@@ -31,7 +31,7 @@ export * from '../../utils/urlToFile.js';
31
31
  export * from '../../utils/getGlobalObject.js';
32
32
  export * from '../../utils/freezePartial.js';
33
33
  export * from '../../utils/isNpmPackage.js';
34
- export * from '../../utils/isNotNullish.js';
34
+ export * from '../../utils/isNullish.js';
35
35
  export * from '../../utils/isScriptFile.js';
36
36
  export * from '../../utils/removeFileExtention.js';
37
37
  export * from '../../utils/objectKeys.js';
@@ -35,7 +35,7 @@ export * from '../../utils/urlToFile.js';
35
35
  export * from '../../utils/getGlobalObject.js';
36
36
  export * from '../../utils/freezePartial.js';
37
37
  export * from '../../utils/isNpmPackage.js';
38
- export * from '../../utils/isNotNullish.js';
38
+ export * from '../../utils/isNullish.js';
39
39
  export * from '../../utils/isScriptFile.js';
40
40
  export * from '../../utils/removeFileExtention.js';
41
41
  export * from '../../utils/objectKeys.js';
@@ -20,8 +20,8 @@ async function createDevMiddleware(options = {}) {
20
20
  }
21
21
  }
22
22
  };
23
- const { viteConfigEnhanced } = await prepareViteApiCall(optionsMod, 'dev');
24
- const server = await createServer(viteConfigEnhanced);
23
+ const { viteConfigFromUserEnhanced } = await prepareViteApiCall(optionsMod, 'dev');
24
+ const server = await createServer(viteConfigFromUserEnhanced);
25
25
  const devMiddleware = server.middlewares;
26
26
  return { devMiddleware, viteServer: server, viteConfig: server.config };
27
27
  }
@@ -10,6 +10,6 @@ export * from '../../utils/parseUrl.js';
10
10
  export * from '../../utils/parseUrl-extras.js';
11
11
  export * from '../../utils/isObject.js';
12
12
  export * from '../../utils/assertIsNotBrowser.js';
13
- export * from '../../utils/isNotNullish.js';
13
+ export * from '../../utils/isNullish.js';
14
14
  export * from '../../utils/unique.js';
15
15
  export * from '../../utils/debug.js';
@@ -12,6 +12,6 @@ export * from '../../utils/parseUrl.js';
12
12
  export * from '../../utils/parseUrl-extras.js';
13
13
  export * from '../../utils/isObject.js';
14
14
  export * from '../../utils/assertIsNotBrowser.js';
15
- export * from '../../utils/isNotNullish.js';
15
+ export * from '../../utils/isNullish.js';
16
16
  export * from '../../utils/unique.js';
17
17
  export * from '../../utils/debug.js';
@@ -1,6 +1,8 @@
1
1
  export { isVirtualFileId };
2
2
  export { getVirtualFileId };
3
3
  export { resolveVirtualFileId };
4
+ export { removeVirtualIdTag };
4
5
  declare function isVirtualFileId(id: string): boolean;
5
6
  declare function getVirtualFileId(id: string): string;
6
7
  declare function resolveVirtualFileId(id: string): string;
8
+ declare function removeVirtualIdTag(id: string): string;
@@ -1,32 +1,36 @@
1
1
  export { isVirtualFileId };
2
2
  export { getVirtualFileId };
3
3
  export { resolveVirtualFileId };
4
+ export { removeVirtualIdTag };
4
5
  import pc from '@brillout/picocolors';
5
6
  import { assert, assertUsage } from './utils.js';
6
7
  const idBase = 'virtual:vike:';
7
8
  // https://vitejs.dev/guide/api-plugin.html#virtual-modules-convention
8
- const tag = '\0';
9
+ const virtualIdTag = '\0';
9
10
  function isVirtualFileId(id) {
10
11
  if (id.startsWith(idBase))
11
12
  return true;
12
- if (id.startsWith(tag + idBase))
13
+ if (id.startsWith(virtualIdTag + idBase))
13
14
  return true;
14
15
  // https://github.com/vikejs/vike/issues/1985
15
16
  assertUsage(!id.includes(idBase), `Encountered a module ID ${pc.cyan(id)} that is unexpected. Are you using a tool that modifies the ID of modules? For example, the baseUrl setting in tsconfig.json cannot be used.`);
16
17
  return false;
17
18
  }
18
19
  function getVirtualFileId(id) {
19
- if (id.startsWith(tag)) {
20
- id = id.slice(tag.length);
21
- }
22
- assert(!id.startsWith(tag));
23
- return id;
20
+ return removeVirtualIdTag(id);
24
21
  }
25
22
  function resolveVirtualFileId(id) {
26
23
  assert(isVirtualFileId(id));
27
- if (!id.startsWith(tag)) {
28
- id = tag + id;
24
+ if (!id.startsWith(virtualIdTag)) {
25
+ id = virtualIdTag + id;
26
+ }
27
+ assert(id.startsWith(virtualIdTag));
28
+ return id;
29
+ }
30
+ function removeVirtualIdTag(id) {
31
+ if (id.startsWith(virtualIdTag)) {
32
+ id = id.slice(virtualIdTag.length);
29
33
  }
30
- assert(id.startsWith(tag));
34
+ assert(!id.startsWith(virtualIdTag));
31
35
  return id;
32
36
  }
@@ -1,4 +1,5 @@
1
1
  export { modifyUrl };
2
+ import { type ModifyUrlSameOriginOptions } from './modifyUrlSameOrigin.js';
2
3
  /**
3
4
  * Modify a URL.
4
5
  *
@@ -6,8 +7,7 @@ export { modifyUrl };
6
7
  *
7
8
  * https://vike.dev/modifyUrl
8
9
  */
9
- declare function modifyUrl(url: string, modify: {
10
- pathname?: string;
10
+ declare function modifyUrl(url: string, modify: ModifyUrlSameOriginOptions & {
11
11
  hostname?: string;
12
12
  port?: number;
13
13
  protocol?: string;
@@ -1,4 +1,5 @@
1
1
  export { modifyUrl };
2
+ import { modifyUrlSameOrigin } from './modifyUrlSameOrigin.js';
2
3
  import { createUrlFromComponents, parseUrl } from './utils.js';
3
4
  /**
4
5
  * Modify a URL.
@@ -8,9 +9,8 @@ import { createUrlFromComponents, parseUrl } from './utils.js';
8
9
  * https://vike.dev/modifyUrl
9
10
  */
10
11
  function modifyUrl(url, modify) {
12
+ url = modifyUrlSameOrigin(url, modify);
11
13
  const urlParsed = parseUrl(url, '/');
12
- // Pathname
13
- const pathname = modify.pathname ?? urlParsed.pathname;
14
14
  // Origin
15
15
  const originParts = [
16
16
  modify.protocol ?? urlParsed.protocol ?? '',
@@ -21,8 +21,6 @@ function modifyUrl(url, modify) {
21
21
  originParts.push(`:${port}`);
22
22
  }
23
23
  const origin = originParts.join('');
24
- const urlModified = createUrlFromComponents(origin, pathname,
25
- // Should we also support modifying search and hash?
26
- urlParsed.searchOriginal, urlParsed.hashOriginal);
24
+ const urlModified = createUrlFromComponents(origin, urlParsed.pathname, urlParsed.searchOriginal, urlParsed.hashOriginal);
27
25
  return urlModified;
28
26
  }
@@ -0,0 +1,9 @@
1
+ export { modifyUrlSameOrigin };
2
+ export { ModifyUrlSameOriginOptions };
3
+ type ModifyUrlSameOriginOptions = {
4
+ hash?: string | null;
5
+ search?: Search | null;
6
+ pathname?: string;
7
+ };
8
+ type Search = Record<string, string | null> | URLSearchParams;
9
+ declare function modifyUrlSameOrigin(url: string, modify: ModifyUrlSameOriginOptions): string;
@@ -0,0 +1,40 @@
1
+ export { modifyUrlSameOrigin };
2
+ import { createUrlFromComponents, isNotNullish_keyVal, parseUrl, objectFilter, assertUsageUrlPathnameAbsolute } from './utils.js';
3
+ function modifyUrlSameOrigin(url, modify) {
4
+ const urlParsed = parseUrl(url, '/');
5
+ // Pathname
6
+ const pathname = modify.pathname ?? urlParsed.pathnameOriginal;
7
+ assertUsageUrlPathnameAbsolute(pathname, 'modify.pathname');
8
+ // Search
9
+ let search = modify.search === null ? '' : !modify.search ? urlParsed.searchOriginal : resolveSearch(urlParsed, modify.search);
10
+ if (search === '?')
11
+ search = '';
12
+ // Hash
13
+ let hash;
14
+ if (modify.hash === null) {
15
+ hash = '';
16
+ }
17
+ else if (modify.hash === undefined) {
18
+ hash = urlParsed.hashOriginal ?? '';
19
+ }
20
+ else {
21
+ hash = modify.hash;
22
+ if (!hash.startsWith('#'))
23
+ hash = '#' + hash;
24
+ }
25
+ const urlModified = createUrlFromComponents(urlParsed.origin, pathname, search, hash);
26
+ return urlModified;
27
+ }
28
+ function resolveSearch(urlParsed, search) {
29
+ let searchParams;
30
+ if (search instanceof URLSearchParams) {
31
+ // Overwrite
32
+ searchParams = search;
33
+ }
34
+ else {
35
+ // Merge
36
+ const searchMap = objectFilter({ ...urlParsed.search, ...search }, (isNotNullish_keyVal));
37
+ searchParams = new URLSearchParams(searchMap);
38
+ }
39
+ return '?' + searchParams.toString();
40
+ }
@@ -491,6 +491,12 @@ type ConfigBuiltIn = {
491
491
  * https://vike.dev/port
492
492
  */
493
493
  port?: number;
494
+ /**
495
+ * Set the mode to run in.
496
+ *
497
+ * https://vike.dev/mode
498
+ */
499
+ mode?: string;
494
500
  /** Where scripts are injected in the HTML.
495
501
  *
496
502
  * https://vike.dev/injectScriptsAt
@@ -10,7 +10,7 @@ export * from '../utils/isBrowser.js';
10
10
  export * from '../utils/hasProp.js';
11
11
  export * from '../utils/isPlainObject.js';
12
12
  export * from '../utils/compareString.js';
13
- export * from '../utils/isNotNullish.js';
13
+ export * from '../utils/isNullish.js';
14
14
  export * from '../utils/stringifyStringArray.js';
15
15
  export * from '../utils/cast.js';
16
16
  export * from '../utils/isPropertyGetter.js';
@@ -22,3 +22,4 @@ export * from '../utils/isArray.js';
22
22
  export * from '../utils/changeEnumerable.js';
23
23
  export * from '../utils/objectDefineProperty.js';
24
24
  export * from '../utils/isScriptFile.js';
25
+ export * from '../utils/objectFilter.js';
@@ -14,7 +14,7 @@ export * from '../utils/isBrowser.js';
14
14
  export * from '../utils/hasProp.js';
15
15
  export * from '../utils/isPlainObject.js';
16
16
  export * from '../utils/compareString.js';
17
- export * from '../utils/isNotNullish.js';
17
+ export * from '../utils/isNullish.js';
18
18
  export * from '../utils/stringifyStringArray.js';
19
19
  export * from '../utils/cast.js';
20
20
  export * from '../utils/isPropertyGetter.js';
@@ -26,3 +26,4 @@ export * from '../utils/isArray.js';
26
26
  export * from '../utils/changeEnumerable.js';
27
27
  export * from '../utils/objectDefineProperty.js';
28
28
  export * from '../utils/isScriptFile.js';
29
+ export * from '../utils/objectFilter.js';
@@ -3,7 +3,6 @@ export type { PageContextServer } from '../shared/types.js';
3
3
  export type { PageContextClient } from '../shared/types.js';
4
4
  export type { PageContextWithServerRouting } from '../shared/types.js';
5
5
  export type { PageContextClientWithServerRouting } from '../shared/types.js';
6
- export type { ConfigVitePluginServerEntry } from '@brillout/vite-plugin-server-entry/plugin';
7
6
  export type { PageContextBuiltInServer } from '../shared/types.js';
8
7
  export type { PageContextBuiltInClientWithClientRouting } from '../shared/types.js';
9
8
  export type { PageContextBuiltInClientWithServerRouting } from '../shared/types.js';
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.225-commit-2b7971f";
1
+ export declare const PROJECT_VERSION: "0.4.225-commit-6fc12fc";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.225-commit-2b7971f';
2
+ export const PROJECT_VERSION = '0.4.225-commit-6fc12fc';
@@ -0,0 +1,3 @@
1
+ export declare function isNullish(val: unknown): val is null | undefined;
2
+ export declare function isNotNullish<T>(p: T | null | undefined): p is T;
3
+ export declare function isNotNullish_keyVal<T>(arg: [string, T | null | undefined]): arg is [string, T];
@@ -0,0 +1,11 @@
1
+ export function isNullish(val) {
2
+ return val === null || val === undefined;
3
+ }
4
+ // someArray.filter(isNotNullish)
5
+ export function isNotNullish(p) {
6
+ return !isNullish(p);
7
+ }
8
+ // objectFilter(obj).filter(isNotNullish_keyVal)
9
+ export function isNotNullish_keyVal(arg) {
10
+ return !isNullish(arg[1]);
11
+ }
@@ -0,0 +1 @@
1
+ export declare function objectFilter<Val, Val2 extends Val, Obj extends Record<string, Val>>(obj: Obj, filter: (arg: [string, Val]) => arg is [string, Val2]): Record<string, Val2>;
@@ -0,0 +1,7 @@
1
+ // Type inference for:
2
+ // ```js
3
+ // Object.fromEntries(Object.entries(obj).filter(someFilter))
4
+ // ```
5
+ export function objectFilter(obj, filter) {
6
+ return Object.fromEntries(Object.entries(obj).filter(filter));
7
+ }
@@ -0,0 +1 @@
1
+ export declare function pick<Obj extends Record<string, unknown>, Keys extends keyof Obj>(obj: Obj, keys: Keys[]): Pick<Obj, Keys>;
@@ -0,0 +1,9 @@
1
+ export function pick(obj, keys) {
2
+ const result = {};
3
+ for (const key of keys) {
4
+ if (key in obj) {
5
+ result[key] = obj[key];
6
+ }
7
+ }
8
+ return result;
9
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.225-commit-2b7971f",
3
+ "version": "0.4.225-commit-6fc12fc",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {
@@ -123,7 +123,7 @@
123
123
  "@brillout/json-serializer": "^0.5.15",
124
124
  "@brillout/picocolors": "^1.0.26",
125
125
  "@brillout/require-shim": "^0.1.2",
126
- "@brillout/vite-plugin-server-entry": "^0.6.3",
126
+ "@brillout/vite-plugin-server-entry": "0.6.3-commit-0c67c6a",
127
127
  "acorn": "^8.0.0",
128
128
  "cac": "^6.0.0",
129
129
  "es-module-lexer": "^1.0.0",
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNotNullish = void 0;
4
- const isNotNullish = (p) => p !== null && p !== undefined;
5
- exports.isNotNullish = isNotNullish;
@@ -1 +0,0 @@
1
- export declare const isNotNullish: <T>(p: T | null | undefined) => p is T;
@@ -1 +0,0 @@
1
- export const isNotNullish = (p) => p !== null && p !== undefined;