Skip to main content
Go to Latest
File
import isbot from 'https://esm.sh/isbot@3.6.5'import { UAParser } from 'https://esm.sh/ua-parser-js@1.0.32'import type { DarkflareContext } from './DarkflareContext.d.ts'
export class UserAgent { public browser public cpu public device public engine public os public isBot
constructor(request: DarkflareContext['req']['raw']) { const header = request.headers.get('user-agent')
if (!header) return
const userAgent = new UAParser(header)
, browser = userAgent.getBrowser() , cpu = userAgent.getCPU() , device = userAgent.getDevice() , engine = userAgent.getEngine() , os = userAgent.getOS()
this.browser = { name: browser.name, version: browser.version }
this.cpu = { architecture: cpu.architecture }
this.device = { model: device.model, type: device.type, vendor: device.vendor }
this.engine = { name: engine.name, version: engine.version }
this.os = { name: os.name, version: os.version }
this.isBot = isbot(header) }}