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'exportfunctionmiddleware(request:NextRequest) {consturl=request.nextUrlconst { device } =userAgent(request)// device.type can be: 'mobile', 'tablet', 'console', 'smarttv',// 'wearable', 'embedded', or undefined (for desktop browsers)constviewport=device.type ||'desktop'url.searchParams.set('viewport', viewport)returnNextResponse.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?