blob: bc99fbc52bda11c72bb5753cbf960184ee7d7c76 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
import { cpus } from 'node:os';
import macosVersion from 'macos-version';
import { chrome } from 'useragent-generator';
import {
chromeVersion,
isMac,
isWindows,
is64Bit,
osArch,
osRelease,
} from '../environment';
function macOS() {
const version = macosVersion() ?? '';
let cpuName = cpus()[0].model.split(' ')[0];
if (cpuName && /\(/.test(cpuName)) {
// eslint-disable-next-line prefer-destructuring
cpuName = cpuName.split('(')[0];
}
return `Macintosh; ${cpuName} Mac OS X ${version.replaceAll('.', '_')}`;
}
function windows() {
const version = osRelease;
const [majorVersion, minorVersion] = version.split('.');
const archString = is64Bit ? 'Win64' : 'Win32';
return `Windows NT ${majorVersion}.${minorVersion}; ${archString}; ${osArch}`;
}
function linux() {
const archString = is64Bit ? 'x86_64' : osArch;
return `X11; Linux ${archString}`;
}
export default function userAgent() {
let platformString = '';
if (isMac) {
platformString = macOS();
} else if (isWindows) {
platformString = windows();
} else {
platformString = linux();
}
return chrome({ os: platformString, version: chromeVersion });
}
|