feat: new importer (#214)

This commit is contained in:
Carl-Gerhard Lindesvärd
2025-11-05 09:49:36 +01:00
committed by GitHub
parent b51bc8f3f6
commit 212254d31a
80 changed files with 4884 additions and 842 deletions

View File

@@ -68,6 +68,7 @@ const parse = (ua: string): UAParser.IResult => {
return res;
};
export type UserAgentInfo = ReturnType<typeof parseUserAgent>;
export function parseUserAgent(
ua?: string | null,
overrides?: Record<string, unknown>,
@@ -80,13 +81,35 @@ export function parseUserAgent(
}
return {
os: overrides?.__os || res.os.name,
osVersion: overrides?.__osVersion || res.os.version,
browser: overrides?.__browser || res.browser.name,
browserVersion: overrides?.__browserVersion || res.browser.version,
device: overrides?.__device || res.device.type || getDevice(ua),
brand: overrides?.__brand || res.device.vendor,
model: overrides?.__model || res.device.model,
os:
typeof overrides?.__os === 'string' && overrides?.__os
? overrides?.__os
: res.os.name,
osVersion:
typeof overrides?.__osVersion === 'string' && overrides?.__osVersion
? overrides?.__osVersion
: res.os.version,
browser:
typeof overrides?.__browser === 'string' && overrides?.__browser
? overrides?.__browser
: res.browser.name,
browserVersion:
typeof overrides?.__browserVersion === 'string' &&
overrides?.__browserVersion
? overrides?.__browserVersion
: res.browser.version,
device:
typeof overrides?.__device === 'string' && overrides?.__device
? overrides?.__device
: res.device.type || getDevice(ua),
brand:
typeof overrides?.__brand === 'string' && overrides?.__brand
? overrides?.__brand
: res.device.vendor,
model:
typeof overrides?.__model === 'string' && overrides?.__model
? overrides?.__model
: res.device.model,
isServer: false,
} as const;
}