Skip to content

Commit bae255a

Browse files
committed
Make getRequestMeta in Edge work
1 parent 1c118a9 commit bae255a

File tree

4 files changed

+18
-1
lines changed

4 files changed

+18
-1
lines changed

packages/next/src/server/base-http/web.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { DetachedPromise } from '../../lib/detached-promise'
77
import type { NextRequestHint } from '../web/adapter'
88
import { CloseController, trackBodyConsumed } from '../web/web-on-close'
99
import { InvariantError } from '../../shared/lib/invariant-error'
10+
import { NEXT_REQUEST_META } from '../request-meta'
1011

1112
export class WebNextRequest extends BaseNextRequest<ReadableStream | null> {
1213
public request: Request
@@ -28,6 +29,12 @@ export class WebNextRequest extends BaseNextRequest<ReadableStream | null> {
2829
for (const [name, value] of request.headers.entries()) {
2930
this.headers[name] = value
3031
}
32+
33+
// @ts-ignore
34+
if (request[NEXT_REQUEST_META]) {
35+
// @ts-ignore
36+
this[NEXT_REQUEST_META] = request[NEXT_REQUEST_META]
37+
}
3138
}
3239

3340
async parseBody(_limit: string | number): Promise<any> {

packages/next/src/server/next-server.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1715,7 +1715,7 @@ export default class NextNodeServer extends BaseServer<
17151715
method !== 'GET' && method !== 'HEAD'
17161716
? (getRequestMeta(params.request, 'clonableBody') as any)
17171717
: undefined,
1718-
1718+
meta: getRequestMeta(params.request),
17191719
signal: signalFromNodeResponse(params.response.originalResponse),
17201720
waitUntil: this.getWaitUntil(),
17211721
}
@@ -2056,6 +2056,7 @@ export default class NextNodeServer extends BaseServer<
20562056
...(params.params && { params: params.params }),
20572057
},
20582058
body: getRequestMeta(params.req, 'clonableBody'),
2059+
meta: getRequestMeta(params.req),
20592060
signal: signalFromNodeResponse(params.res.originalResponse),
20602061
waitUntil: this.getWaitUntil(),
20612062
},

packages/next/src/server/web/adapter.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { CloseController } from './web-on-close'
3535
import { getEdgePreviewProps } from './get-edge-preview-props'
3636
import { getBuiltinRequestContext } from '../after/builtin-request-context'
3737
import { getImplicitTags } from '../lib/implicit-tags'
38+
import { NEXT_REQUEST_META, type RequestMeta } from '../request-meta'
3839

3940
export class NextRequestHint extends NextRequest {
4041
sourcePage: string
@@ -43,10 +44,15 @@ export class NextRequestHint extends NextRequest {
4344
constructor(params: {
4445
init: RequestInit
4546
input: Request | string
47+
meta: RequestMeta | undefined
4648
page: string
4749
}) {
4850
super(params.input, params.init)
4951
this.sourcePage = params.page
52+
if (params.meta) {
53+
// @ts-ignore
54+
this[NEXT_REQUEST_META] = params.meta
55+
}
5056
}
5157

5258
get request() {
@@ -185,6 +191,7 @@ export async function adapter(
185191
nextConfig: params.request.nextConfig,
186192
signal: params.request.signal,
187193
},
194+
meta: params.request.meta,
188195
})
189196

190197
/**

packages/next/src/server/web/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import type { NextResponse } from './spec-extension/response'
55
import type { CloneableBody } from '../body-streams'
66
import type { OutgoingHttpHeaders } from 'http'
77
import type { FetchMetrics } from '../base-http'
8+
import type { RequestMeta } from '../request-meta'
89

910
/**
1011
* @deprecated Use `ProxyConfig` instead. Middleware has been renamed to Proxy.
@@ -30,6 +31,7 @@ export interface RequestData {
3031
params?: { [key: string]: string | string[] | undefined }
3132
}
3233
url: string
34+
meta?: RequestMeta
3335
body?: ReadableStream<Uint8Array>
3436
signal: AbortSignal
3537
/** passed in when running in edge runtime sandbox */

0 commit comments

Comments
 (0)