@davaux/user-agent
v0.8.1
Published
User-Agent parsing middleware for Davaux
Downloads
343
Readme
@davaux/user-agent
User-Agent parsing middleware for Davaux. Exposes structured device, browser, and OS information as ctx.state.userAgent.
Installation
npm install @davaux/user-agentSetup
// src/routes/_global.ts (or _middleware.ts for a subtree)
import { userAgent } from '@davaux/user-agent'
export default userAgent()Usage
export default definePage((ctx) => {
const { isMobile, browserName, osName, isBot } = ctx.state.userAgent
return <p>Hello from {browserName} on {osName}</p>
})UserAgent fields
| Field | Type | Description |
|---|---|---|
| raw | string | Raw User-Agent header value |
| isMobile | boolean | Mobile device (excludes tablets) |
| isTablet | boolean | Tablet (iPad, or Android without Mobile token) |
| isDesktop | boolean | Desktop/laptop (not bot, mobile, or tablet) |
| isBot | boolean | Known bot, crawler, or non-browser client |
| botName | string? | Bot name when isBot is true, e.g. 'Googlebot', 'curl' |
| deviceType | 'mobile' \| 'tablet' \| 'desktop' \| 'bot' \| 'unknown' | Normalized device category |
| browserName | string? | e.g. 'Chrome', 'Firefox', 'Safari', 'Edge' |
| browserVersion | string? | e.g. '120.0.6099.130' |
| osName | string? | e.g. 'Windows', 'macOS', 'Android', 'iOS' |
| osVersion | string? | e.g. '10', '15.7' |
| engine | string? | e.g. 'Blink', 'Gecko', 'WebKit' |
| partial | boolean | true when signals are conflicting or insufficient to trust fully |
