Skip to content

Commit a2fa637

Browse files
j-mendezijjk
andauthored
fix(types): add missing ua types for NextRequest (vercel#31901)
* fix(types): add missing ua type for NextRequest add missing ua string type on NextRequest["ua"], returns full agent as string * Update UserAgent type Co-authored-by: JJ Kasper <[email protected]>
1 parent b290a3d commit a2fa637

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

packages/next/server/web/spec-extension/request.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type { I18NConfig } from '../../config-shared'
2-
import type { IResult } from 'next/dist/compiled/ua-parser-js'
32
import type { RequestData } from '../types'
43
import { NextURL } from '../next-url'
54
import { isBot } from '../../utils'
@@ -110,6 +109,27 @@ export interface RequestInit extends globalThis.RequestInit {
110109
}
111110
}
112111

113-
interface UserAgent extends IResult {
112+
interface UserAgent {
114113
isBot: boolean
114+
ua: string
115+
browser: {
116+
name?: string
117+
version?: string
118+
}
119+
device: {
120+
model?: string
121+
type?: string
122+
vendor?: string
123+
}
124+
engine: {
125+
name?: string
126+
version?: string
127+
}
128+
os: {
129+
name?: string
130+
version?: string
131+
}
132+
cpu: {
133+
architecture?: string
134+
}
115135
}

test/integration/middleware-typescript/pages/interface/_middleware.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { NextMiddleware } from 'next/server'
22

33
export const middleware: NextMiddleware = function (request) {
4+
console.log(request.ua?.browser)
5+
console.log(request.ua?.isBot)
6+
console.log(request.ua?.ua)
7+
48
return new Response(null, {
59
headers: {
610
'req-url-basepath': request.nextUrl.basePath,

0 commit comments

Comments
 (0)