Improve the typing of the browser/platform identifiers
authorAlexander Ebert <ebert@woltlab.com>
Mon, 21 Aug 2023 12:34:17 +0000 (14:34 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Mon, 21 Aug 2023 12:34:17 +0000 (14:34 +0200)
ts/WoltLabSuite/Core/Environment.ts

index d3e4f190bf4927be1a19b070c993c2f0b50d5b1d..5700654a5bd1f00ab98b261588d468320cb723b5 100644 (file)
@@ -6,8 +6,11 @@
  * @license  GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  */
 
-let _browser = "other";
-let _platform = "desktop";
+type Browser = "chrome" | "firefox" | "microsoft" | "other" | "safari";
+type Platform = "android" | "desktop" | "ios" | "mobile" | "windows";
+
+let _browser: Browser = "other";
+let _platform: Platform = "desktop";
 let _touch = false;
 
 /**
@@ -72,7 +75,7 @@ export function setup(): void {
  *  - microsoft: Internet Explorer and Microsoft Edge
  *  - safari
  */
-export function browser(): string {
+export function browser(): Browser {
   return _browser;
 }
 
@@ -85,7 +88,7 @@ export function browser(): string {
  *  - ios: iPhone, iPad and iPod
  *  - windows: Windows on phones/tablets
  */
-export function platform(): string {
+export function platform(): Platform {
   return _platform;
 }