Skip to content

Commit bd45917

Browse files
committed
Try setting on "global"
1 parent 89a37c3 commit bd45917

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

packages/gitbook/src/lib/middleware.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
import { AsyncLocalStorage } from 'node:async_hooks';
22

3-
const responseHeadersLocalStorage = new AsyncLocalStorage<Headers>();
4-
53
/**
64
* Set a header on the middleware response.
75
* We do this because of https://github.com/opennextjs/opennextjs-cloudflare/issues/92
86
* It can be removed as soon as we move to opennext where hopefully this is fixed.
97
*/
108
export function setMiddlewareHeader(response: Response, name: string, value: string) {
9+
// @ts-ignore
10+
const responseHeadersLocalStorage =
11+
global.responseHeadersLocalStorage as AsyncLocalStorage<Headers>;
12+
console.log('setMiddlewareHeader 0', name, !!responseHeadersLocalStorage);
1113
const responseHeaders = responseHeadersLocalStorage.getStore();
1214
response.headers.set(name, value);
1315

14-
console.log('setMiddlewareHeader', name, !!responseHeaders);
16+
console.log('setMiddlewareHeader 1', name, !!responseHeaders);
1517

1618
if (responseHeaders) {
1719
responseHeaders.set(name, value);
@@ -24,6 +26,13 @@ export function setMiddlewareHeader(response: Response, name: string, value: str
2426
export async function withMiddlewareHeadersStorage(
2527
handler: () => Promise<Response>,
2628
): Promise<Response> {
29+
// @ts-ignore
30+
const responseHeadersLocalStorage =
31+
(global.responseHeadersLocalStorage as AsyncLocalStorage<Headers>) ??
32+
new AsyncLocalStorage<Headers>();
33+
// @ts-ignore
34+
global.responseHeadersLocalStorage = responseHeadersLocalStorage;
35+
2736
const responseHeaders = new Headers();
2837
const response = await responseHeadersLocalStorage.run(responseHeaders, handler);
2938

0 commit comments

Comments
 (0)