Added browser / os / device override in payload

This commit is contained in:
RaenonX 2025-11-24 15:21:20 +08:00
parent 92a7355ce3
commit 805bc57bbb
No known key found for this signature in database
GPG key ID: 27348CBA8F0C90F1
2 changed files with 6 additions and 3 deletions

View file

@ -41,6 +41,9 @@ const schema = z.object({
userAgent: z.string().optional(),
timestamp: z.coerce.number().int().optional(),
id: z.string().optional(),
browser: z.string().optional(),
os: z.string().optional(),
device: z.string().optional(),
})
.refine(
data => {

View file

@ -114,9 +114,9 @@ export async function getClientInfo(request: Request, payload: Record<string, an
const country = safeDecodeURIComponent(location?.country);
const region = safeDecodeURIComponent(location?.region);
const city = safeDecodeURIComponent(location?.city);
const browser = browserName(userAgent);
const os = detectOS(userAgent) as string;
const device = getDevice(userAgent, payload?.screen);
const browser = payload?.browser ?? browserName(userAgent);
const os = payload?.os ?? (detectOS(userAgent) as string);
const device = payload?.device ?? getDevice(userAgent, payload?.screen);
return { userAgent, browser, os, ip, country, region, city, device };
}