userAgent
The userAgent
helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.
middleware.ts
import { NextRequest, NextResponse, userAgent } from 'next/server'
export function middleware(request: NextRequest) {
const url = request.nextUrl
const { device } = userAgent(request)
const viewport = device.type === 'mobile' ? 'mobile' : 'desktop'
url.searchParams.set('viewport', viewport)
return NextResponse.rewrite(url)
}
isBot
A boolean indicating whether the request comes from a known bot.
browser
An object containing information about the browser used in the request.
name
: A string representing the browser's name, orundefined
if not identifiable.version
: A string representing the browser's version, orundefined
.
device
An object containing information about the device used in the request.
model
: A string representing the model of the device, orundefined
.type
: A string representing the type of the device, such asconsole
,mobile
,tablet
,smarttv
,wearable
,embedded
, orundefined
.vendor
: A string representing the vendor of the device, orundefined
.
engine
An object containing information about the browser's engine.
name
: A string representing the engine's name. Possible values include:Amaya
,Blink
,EdgeHTML
,Flow
,Gecko
,Goanna
,iCab
,KHTML
,Links
,Lynx
,NetFront
,NetSurf
,Presto
,Tasman
,Trident
,w3m
,WebKit
orundefined
.version
: A string representing the engine's version, orundefined
.
os
An object containing information about the operating system.
name
: A string representing the name of the OS, orundefined
.version
: A string representing the version of the OS, orundefined
.
cpu
An object containing information about the CPU architecture.
architecture
: A string representing the architecture of the CPU. Possible values include:68k
,amd64
,arm
,arm64
,armhf
,avr
,ia32
,ia64
,irix
,irix64
,mips
,mips64
,pa-risc
,ppc
,sparc
,sparc64
orundefined
Was this helpful?