userAgent
The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.
proxy.ts
import { NextRequest, NextResponse, userAgent } from 'next/server'
export function proxy(request: NextRequest) {
const url = request.nextUrl
const { device } = userAgent(request)
// device.type can be: 'mobile', 'tablet', 'console', 'smarttv',
// 'wearable', 'embedded', or undefined (for desktop browsers)
const viewport = device.type || '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, orundefinedif 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,WebKitorundefined.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,sparc64orundefined
Was this helpful?