Capítulo 386 de 456
Helper que estende a Web Request API com propriedades pra ler informações do user agent (browser, device, engine, OS, CPU) direto do request, tipicamente em proxy/middleware.
next/server que recebe um NextRequest e retorna o objeto com isBot, browser, device, engine, os, cpuboolean, indica se o request vem de bot conhecido{ name, version }, ambos string | undefined{ model, type, vendor }; type pode ser console, mobile, tablet, smarttv, wearable, embedded ou undefined (desktop){ name, version }; name entre valores como Blink, Gecko, WebKit, Trident, etc.{ name, version }{ architecture }, valores como arm64, amd64, ia32, etc.import { NextRequest, NextResponse, userAgent } from 'next/server'
export function proxy(request: NextRequest) {
const url = request.nextUrl
const { device } = userAgent(request)
const viewport = device.type || 'desktop'
url.searchParams.set('viewport', viewport)
return NextResponse.rewrite(url)
}
browser, device, engine, os, cpu podem vir undefined, sempre tratar como opcionaisdevice.type ausente (undefined) indica desktopproxy/middleware para rewrite/redirect condicional por device ou bloqueio de botsuserAgent opera sobre o objeto de request do runtime de proxy