From 1a0bdd591b47791b1890c67db52597d01e75a1f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Garapich?= Date: Wed, 18 Jan 2023 01:37:56 +0100 Subject: [PATCH] add discoverPlatform() --- src/client.ts | 7 ++++--- src/discover-platform.ts | 17 +++++++++++++++++ tsconfig.json | 10 +++++++--- 3 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 src/discover-platform.ts diff --git a/src/client.ts b/src/client.ts index 9a350e73..23a2c506 100644 --- a/src/client.ts +++ b/src/client.ts @@ -31,9 +31,9 @@ import { encodeMumbleVersion } from './encode-mumble-version'; import { ClientOptions } from './client-options'; import { ConnectionRejectedError } from './errors'; import { filterPacket } from './rxjs-operators/filter-packet'; -import { platform, release } from 'os'; import { Permissions } from './permissions'; import { EventNames } from './event-names'; +import { discoverPlatform } from './discover-platform'; const defaultOptions: Partial = { port: 64738, @@ -148,6 +148,7 @@ export class Client extends EventEmitter { * @internal */ private async sendVersion(): Promise { + const { platform, version: platformVersion } = await discoverPlatform(); const version = encodeMumbleVersion({ major: 1, minor: 4, @@ -158,8 +159,8 @@ export class Client extends EventEmitter { Version.create({ release: this.options.clientName, version, - os: platform(), - osVersion: release(), + os: platform, + osVersion: platformVersion, }), ); } diff --git a/src/discover-platform.ts b/src/discover-platform.ts new file mode 100644 index 00000000..26fef97e --- /dev/null +++ b/src/discover-platform.ts @@ -0,0 +1,17 @@ +interface PlatformDescription { + platform: string; + version?: string; +} + +export const discoverPlatform = async (): Promise => { + if (typeof process !== 'undefined' && process.release.name === 'node') { + // Node.JS + const { platform, release } = await import('os'); + return { platform: platform(), version: release() }; + } else if (typeof navigator !== 'undefined') { + // browser + return { platform: navigator.userAgent }; + } else { + return { platform: 'unknown' }; + } +}; diff --git a/tsconfig.json b/tsconfig.json index 76e5ca3c..5e59d824 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,8 @@ "extends": "ts-node/node16/tsconfig.json", "compilerOptions": { "incremental": true, - "target": "es2018", - "module": "commonjs", + "target": "es6", + "module": "esnext", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, @@ -22,7 +22,11 @@ "paths": { "@": ["src"], "@/*": ["src/*"] - } + }, + "lib": [ + "es2018", + "dom" + ] }, "exclude": [ "node_modules",