76083210ed
This PR moves the internal logic associated with `req.ua` into an explicit method the user should to call to have the same behavior. **before** ```typescript // middleware.ts import { NextRequest, NextResponse } from 'next/server' export function middleware(request: NextRequest) { const url = request.nextUrl const viewport = request.ua.device.type === 'mobile' ? 'mobile' : 'desktop' url.searchParams.set('viewport', viewport) return NextResponse.rewrites(url) } ``` **after** ```typescript // 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.rewrites(url) } ``` This potentially will save the extra 17 kB related to the size of `ua-parser-js`
6 lines
451 B
TypeScript
6 lines
451 B
TypeScript
export { NextFetchEvent } from 'next/dist/server/web/spec-extension/fetch-event'
|
|
export { NextRequest } from 'next/dist/server/web/spec-extension/request'
|
|
export { NextResponse } from 'next/dist/server/web/spec-extension/response'
|
|
export { NextMiddleware } from 'next/dist/server/web/types'
|
|
export { userAgentFromString } from 'next/dist/server/web/spec-extension/user-agent'
|
|
export { userAgent } from 'next/dist/server/web/spec-extension/user-agent'
|