From bc76d19c6f5687dd18c96db249e0abe7ad79a673 Mon Sep 17 00:00:00 2001 From: Vijay A Date: Sun, 15 Aug 2021 17:15:09 +0530 Subject: chore: typescript conversion of some minor utilities Also removed 'targz' unused package from runtime. --- src/helpers/userAgent-helpers.ts | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/helpers/userAgent-helpers.ts (limited to 'src/helpers/userAgent-helpers.ts') diff --git a/src/helpers/userAgent-helpers.ts b/src/helpers/userAgent-helpers.ts new file mode 100644 index 000000000..73c8bfd03 --- /dev/null +++ b/src/helpers/userAgent-helpers.ts @@ -0,0 +1,41 @@ +import os from '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 = os.cpus()[0].model.split(' ')[0]; + if (cpuName && cpuName.match(/\(/)) { + cpuName = cpuName.split('(')[0]; + } + return `Macintosh; ${cpuName} Mac OS X ${version.replace(/\./g, '_')}`; +} + +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; Ubuntu; 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 }); +} -- cgit v1.2.3-70-g09d2