Skip to content

Commit e00c87d

Browse files
authored
Output a x-gitbook-route-type header to distinguish static/dynamic (#2938)
1 parent bb3ca9c commit e00c87d

File tree

3 files changed

+37
-6
lines changed

3 files changed

+37
-6
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { type NextRequest, NextResponse } from 'next/server';
2+
3+
import {
4+
GITBOOK_API_URL,
5+
GITBOOK_APP_URL,
6+
GITBOOK_ASSETS_URL,
7+
GITBOOK_DISABLE_TRACKING,
8+
GITBOOK_INTEGRATIONS_HOST,
9+
GITBOOK_URL,
10+
GITBOOK_USER_AGENT,
11+
} from '@v2/lib/env';
12+
13+
/**
14+
* Output the public environment variables for this deployment
15+
*/
16+
export async function GET(_req: NextRequest) {
17+
return NextResponse.json({
18+
GITBOOK_URL,
19+
GITBOOK_APP_URL,
20+
GITBOOK_API_URL,
21+
GITBOOK_ASSETS_URL,
22+
GITBOOK_USER_AGENT,
23+
GITBOOK_INTEGRATIONS_HOST,
24+
GITBOOK_DISABLE_TRACKING,
25+
});
26+
}

packages/gitbook-v2/src/lib/env/globals.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ export const GITBOOK_URL =
1414
export const GITBOOK_ASSETS_URL =
1515
process.env.NODE_ENV === 'development'
1616
? 'http://localhost:3000'
17-
: (process.env.GITBOOK_ASSETS_PREFIX ?? GITBOOK_URL);
17+
: process.env.GITBOOK_ASSETS_PREFIX || GITBOOK_URL;
1818

1919
/**
2020
* GitBook app URL.
2121
*/
22-
export const GITBOOK_APP_URL = process.env.NEXT_PUBLIC_GITBOOK_APP_URL ?? 'https://app.gitbook.com';
22+
export const GITBOOK_APP_URL = process.env.NEXT_PUBLIC_GITBOOK_APP_URL || 'https://app.gitbook.com';
2323

2424
/**
2525
* Default GitBook API URL endpoint.
2626
*/
27-
export const GITBOOK_API_URL = process.env.GITBOOK_API_URL ?? 'https://api.gitbook.com';
27+
export const GITBOOK_API_URL = process.env.GITBOOK_API_URL || 'https://api.gitbook.com';
2828

2929
/**
3030
* Default GitBook API token.
@@ -35,7 +35,7 @@ export const GITBOOK_API_TOKEN = process.env.GITBOOK_API_TOKEN ?? null;
3535
/**
3636
* User agent to use for API requests.
3737
*/
38-
export const GITBOOK_USER_AGENT = process.env.GITBOOK_USER_AGENT ?? 'GitBook-Open/2.0.0';
38+
export const GITBOOK_USER_AGENT = process.env.GITBOOK_USER_AGENT || 'GitBook-Open/2.0.0';
3939

4040
/**
4141
* Whether to disable tracking of events into site insights.
@@ -49,7 +49,7 @@ export const GITBOOK_DISABLE_TRACKING = Boolean(
4949
* Hostname serving the integrations.
5050
*/
5151
export const GITBOOK_INTEGRATIONS_HOST =
52-
process.env.GITBOOK_INTEGRATIONS_HOST ?? 'integrations.gitbook.com';
52+
process.env.GITBOOK_INTEGRATIONS_HOST || 'integrations.gitbook.com';
5353

5454
/**
5555
* Endpoint to use for resizing images.

packages/gitbook-v2/src/middleware.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,13 @@ async function serveSiteByURL(request: NextRequest, urlWithMode: URLWithMode) {
108108
requestHeaders.set('x-forwarded-host', request.nextUrl.host);
109109
requestHeaders.set('origin', request.nextUrl.origin);
110110

111+
const siteURL = `${url.host}${data.basePath}`;
112+
111113
const route = [
112114
'sites',
113115
routeType,
114116
mode,
115-
encodeURIComponent(url.host + data.basePath),
117+
encodeURIComponent(siteURL),
116118
encodePathInSiteContent(data.pathname),
117119
].join('/');
118120

@@ -131,6 +133,9 @@ async function serveSiteByURL(request: NextRequest, urlWithMode: URLWithMode) {
131133
response.headers.set('strict-transport-security', 'max-age=31536000');
132134
response.headers.set('referrer-policy', 'no-referrer-when-downgrade');
133135
response.headers.set('x-content-type-options', 'nosniff');
136+
// Debug header
137+
response.headers.set('x-gitbook-route-type', routeType);
138+
response.headers.set('x-gitbook-site-url', siteURL);
134139

135140
if (visitorToken) {
136141
const cookies = getResponseCookiesForVisitorAuth(data.basePath, visitorToken);

0 commit comments

Comments
 (0)