vike 0.4.238-commit-5762291 → 0.4.238-commit-3c1a09d

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.
@@ -61,7 +61,7 @@ async function resolvePageContext(pageContext) {
61
61
  Page: pageContext.exports.Page,
62
62
  _isHtmlOnly: isHtmlOnly,
63
63
  _passToClient: passToClient,
64
- headersResponse: resolveHeadersResponse(pageContext),
64
+ headersResponse: await resolveHeadersResponse(pageContext),
65
65
  });
66
66
  (0, utils_js_1.objectAssign)(pageContext, {
67
67
  __getPageAssets: async () => {
@@ -128,8 +128,8 @@ async function loadPageUserFiles_v1Design(pageContext) {
128
128
  };
129
129
  }
130
130
  // TODO/now: move all response headers code to headersResponse.ts
131
- function resolveHeadersResponse(pageContext) {
132
- const headersResponse = mergeHeaders(pageContext.config.headersResponse);
131
+ async function resolveHeadersResponse(pageContext) {
132
+ const headersResponse = await mergeHeaders(pageContext);
133
133
  if (!headersResponse.get('Cache-Control')) {
134
134
  const cacheControl = (0, getCacheControl_js_1.getCacheControl)(pageContext.pageId, pageContext._globalContext._pageConfigs);
135
135
  if (cacheControl)
@@ -138,12 +138,19 @@ function resolveHeadersResponse(pageContext) {
138
138
  (0, csp_js_1.addCspHeader)(pageContext, headersResponse);
139
139
  return headersResponse;
140
140
  }
141
- function mergeHeaders(headersList = []) {
141
+ async function mergeHeaders(pageContext) {
142
142
  const headersMerged = new Headers();
143
- headersList.forEach((headers) => {
144
- new Headers(headers).forEach((value, key) => {
143
+ await Promise.all((pageContext.config.headersResponse ?? []).map(async (headers) => {
144
+ let headersInit;
145
+ if ((0, utils_js_1.isCallable)(headers)) {
146
+ headersInit = await headers(pageContext);
147
+ }
148
+ else {
149
+ headersInit = headers;
150
+ }
151
+ new Headers(headersInit).forEach((value, key) => {
145
152
  headersMerged.append(key, value);
146
153
  });
147
- });
154
+ }));
148
155
  return headersMerged;
149
156
  }
@@ -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.238-commit-5762291';
5
+ exports.PROJECT_VERSION = '0.4.238-commit-3c1a09d';
@@ -2,7 +2,7 @@ export { loadPageConfigsLazyServerSide };
2
2
  import { getPageFilesServerSide } from '../../../shared/getPageFiles.js';
3
3
  import { resolveVikeConfigPublicPageLazyLoaded } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
4
4
  import { analyzePageClientSideInit } from '../../../shared/getPageFiles/analyzePageClientSide.js';
5
- import { assertUsage, assertWarning, hasProp, isArray, isObject, objectAssign, updateType, } from '../utils.js';
5
+ import { assertUsage, assertWarning, hasProp, isArray, isCallable, isObject, objectAssign, updateType, } from '../utils.js';
6
6
  import { getPageAssets } from './getPageAssets.js';
7
7
  import { findPageConfig } from '../../../shared/page-configs/findPageConfig.js';
8
8
  import { analyzePage } from './analyzePage.js';
@@ -59,7 +59,7 @@ async function resolvePageContext(pageContext) {
59
59
  Page: pageContext.exports.Page,
60
60
  _isHtmlOnly: isHtmlOnly,
61
61
  _passToClient: passToClient,
62
- headersResponse: resolveHeadersResponse(pageContext),
62
+ headersResponse: await resolveHeadersResponse(pageContext),
63
63
  });
64
64
  objectAssign(pageContext, {
65
65
  __getPageAssets: async () => {
@@ -126,8 +126,8 @@ async function loadPageUserFiles_v1Design(pageContext) {
126
126
  };
127
127
  }
128
128
  // TODO/now: move all response headers code to headersResponse.ts
129
- function resolveHeadersResponse(pageContext) {
130
- const headersResponse = mergeHeaders(pageContext.config.headersResponse);
129
+ async function resolveHeadersResponse(pageContext) {
130
+ const headersResponse = await mergeHeaders(pageContext);
131
131
  if (!headersResponse.get('Cache-Control')) {
132
132
  const cacheControl = getCacheControl(pageContext.pageId, pageContext._globalContext._pageConfigs);
133
133
  if (cacheControl)
@@ -136,12 +136,19 @@ function resolveHeadersResponse(pageContext) {
136
136
  addCspHeader(pageContext, headersResponse);
137
137
  return headersResponse;
138
138
  }
139
- function mergeHeaders(headersList = []) {
139
+ async function mergeHeaders(pageContext) {
140
140
  const headersMerged = new Headers();
141
- headersList.forEach((headers) => {
142
- new Headers(headers).forEach((value, key) => {
141
+ await Promise.all((pageContext.config.headersResponse ?? []).map(async (headers) => {
142
+ let headersInit;
143
+ if (isCallable(headers)) {
144
+ headersInit = await headers(pageContext);
145
+ }
146
+ else {
147
+ headersInit = headers;
148
+ }
149
+ new Headers(headersInit).forEach((value, key) => {
143
150
  headersMerged.append(key, value);
144
151
  });
145
- });
152
+ }));
146
153
  return headersMerged;
147
154
  }
@@ -445,7 +445,7 @@ type ConfigBuiltIn = {
445
445
  *
446
446
  * https://vike.dev/headers#response
447
447
  */
448
- headersResponse?: HeadersInit;
448
+ headersResponse?: HeadersInit | ((pageContext: PageContextServer) => HeadersInit | Promise<HeadersInit>);
449
449
  /**
450
450
  * Make development/preview server available over LAN and public addresses.
451
451
  *
@@ -507,7 +507,7 @@ type ConfigBuiltInResolved = {
507
507
  redirects?: Record<string, string>[];
508
508
  prerender?: Exclude<Config['prerender'], ImportString | undefined>[];
509
509
  middleware?: Function[];
510
- headersResponse?: HeadersInit[];
510
+ headersResponse?: Exclude<Config['headersResponse'], ImportString | undefined>[];
511
511
  };
512
512
  type ConfigMeta = Record<string, ConfigDefinition>;
513
513
  type ImportString = `import:${string}`;
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.238-commit-5762291";
1
+ export declare const PROJECT_VERSION: "0.4.238-commit-3c1a09d";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.238-commit-5762291';
2
+ export const PROJECT_VERSION = '0.4.238-commit-3c1a09d';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.238-commit-5762291",
3
+ "version": "0.4.238-commit-3c1a09d",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {