Refactor getInstance() methods

This commit is contained in:
redphx 2024-10-14 16:56:05 +07:00
parent 9f440e9cf4
commit 927eae3f2f
12 changed files with 14 additions and 82 deletions

View File

@ -124,14 +124,8 @@ This class uses some code from Yuzu emulator to handle mouse's movements
Source: https://github.com/yuzu-emu/yuzu-mainline/blob/master/src/input_common/drivers/mouse.cpp
*/
export class EmulatedMkbHandler extends MkbHandler {
static #instance: EmulatedMkbHandler;
public static getInstance(): EmulatedMkbHandler {
if (!EmulatedMkbHandler.#instance) {
EmulatedMkbHandler.#instance = new EmulatedMkbHandler();
}
return EmulatedMkbHandler.#instance;
}
private static instance: EmulatedMkbHandler;
public static getInstance = () => EmulatedMkbHandler.instance ?? (EmulatedMkbHandler.instance = new EmulatedMkbHandler());
#CURRENT_PRESET_DATA = MkbPreset.convert(MkbPreset.DEFAULT_PRESET);

View File

@ -23,6 +23,8 @@ type XcloudInputSink = {
export class NativeMkbHandler extends MkbHandler {
private static instance: NativeMkbHandler;
public static getInstance = () => NativeMkbHandler.instance ?? (NativeMkbHandler.instance = new NativeMkbHandler());
#pointerClient: PointerClient | undefined;
#enabled: boolean = false;
@ -37,14 +39,6 @@ export class NativeMkbHandler extends MkbHandler {
#$message?: HTMLElement;
public static getInstance(): NativeMkbHandler {
if (!NativeMkbHandler.instance) {
NativeMkbHandler.instance = new NativeMkbHandler();
}
return NativeMkbHandler.instance;
}
#onKeyboardEvent(e: KeyboardEvent) {
if (e.type === 'keyup' && e.code === 'F8') {
e.preventDefault();

View File

@ -15,13 +15,7 @@ enum PointerAction {
export class PointerClient {
private static instance: PointerClient;
public static getInstance(): PointerClient {
if (!PointerClient.instance) {
PointerClient.instance = new PointerClient();
}
return PointerClient.instance;
}
public static getInstance = () => PointerClient.instance ?? (PointerClient.instance = new PointerClient());
private socket: WebSocket | undefined | null;
private mkbHandler: MkbHandler | undefined;

View File

@ -37,13 +37,7 @@ type RemotePlayConsole = {
export class RemotePlayManager {
private static instance: RemotePlayManager;
public static getInstance(): RemotePlayManager {
if (!this.instance) {
this.instance = new RemotePlayManager();
}
return this.instance;
}
public static getInstance = () => RemotePlayManager.instance ?? (RemotePlayManager.instance = new RemotePlayManager());
private isInitialized = false;

View File

@ -50,13 +50,7 @@ enum StreamBadge {
export class StreamBadges {
private static instance: StreamBadges;
public static getInstance(): StreamBadges {
if (!StreamBadges.instance) {
StreamBadges.instance = new StreamBadges();
}
return StreamBadges.instance;
}
public static getInstance = () => StreamBadges.instance ?? (StreamBadges.instance = new StreamBadges());
private serverInfo: StreamServerInfo = {};

View File

@ -9,13 +9,7 @@ import { StreamStat, StreamStatsCollector, type StreamStatGrade } from "@/utils/
export class StreamStats {
private static instance: StreamStats;
public static getInstance(): StreamStats {
if (!StreamStats.instance) {
StreamStats.instance = new StreamStats();
}
return StreamStats.instance;
}
public static getInstance = () => StreamStats.instance ?? (StreamStats.instance = new StreamStats());
private intervalId?: number | null;
private readonly REFRESH_INTERVAL = 1 * 1000;

View File

@ -88,12 +88,7 @@ export abstract class NavigationDialog {
export class NavigationDialogManager {
private static instance: NavigationDialogManager;
public static getInstance(): NavigationDialogManager {
if (!NavigationDialogManager.instance) {
NavigationDialogManager.instance = new NavigationDialogManager();
}
return NavigationDialogManager.instance;
}
public static getInstance = () => NavigationDialogManager.instance ?? (NavigationDialogManager.instance = new NavigationDialogManager());
private static readonly GAMEPAD_POLLING_INTERVAL = 50;
private static readonly GAMEPAD_KEYS = [

View File

@ -11,12 +11,7 @@ import { BxEvent } from "@/utils/bx-event";
export class RemotePlayNavigationDialog extends NavigationDialog {
private static instance: RemotePlayNavigationDialog;
public static getInstance(): RemotePlayNavigationDialog {
if (!RemotePlayNavigationDialog.instance) {
RemotePlayNavigationDialog.instance = new RemotePlayNavigationDialog();
}
return RemotePlayNavigationDialog.instance;
}
public static getInstance = () => RemotePlayNavigationDialog.instance ?? (RemotePlayNavigationDialog.instance = new RemotePlayNavigationDialog());
private readonly STATE_LABELS: Record<RemotePlayConsoleState, string> = {
[RemotePlayConsoleState.ON]: t('powered-on'),

View File

@ -64,12 +64,7 @@ type SettingTab = {
export class SettingsNavigationDialog extends NavigationDialog {
private static instance: SettingsNavigationDialog;
public static getInstance(): SettingsNavigationDialog {
if (!SettingsNavigationDialog.instance) {
SettingsNavigationDialog.instance = new SettingsNavigationDialog();
}
return SettingsNavigationDialog.instance;
}
public static getInstance = () => SettingsNavigationDialog.instance ?? (SettingsNavigationDialog.instance = new SettingsNavigationDialog());
$container!: HTMLElement;
private $tabs!: HTMLElement;

View File

@ -2,12 +2,7 @@ import { CE } from "@/utils/html";
export class FullscreenText {
private static instance: FullscreenText;
public static getInstance(): FullscreenText {
if (!FullscreenText.instance) {
FullscreenText.instance = new FullscreenText();
}
return FullscreenText.instance;
}
public static getInstance = () => FullscreenText.instance ?? (FullscreenText.instance = new FullscreenText());
$text: HTMLElement;

View File

@ -92,13 +92,7 @@ type CurrentStats = {
export class StreamStatsCollector {
private static instance: StreamStatsCollector;
public static getInstance(): StreamStatsCollector {
if (!StreamStatsCollector.instance) {
StreamStatsCollector.instance = new StreamStatsCollector();
}
return StreamStatsCollector.instance;
}
public static getInstance = () => StreamStatsCollector.instance ?? (StreamStatsCollector.instance = new StreamStatsCollector());
// Collect in background - 60 seconds
static readonly INTERVAL_BACKGROUND = 60 * 1000;

View File

@ -3,13 +3,7 @@ import { STATES } from "./global";
export class XcloudApi {
private static instance: XcloudApi;
public static getInstance(): XcloudApi {
if (!XcloudApi.instance) {
XcloudApi.instance = new XcloudApi();
}
return XcloudApi.instance;
}
public static getInstance = () => XcloudApi.instance ?? (XcloudApi.instance = new XcloudApi());
private CACHE_TITLES: {[key: string]: XcloudTitleInfo} = {};
private CACHE_WAIT_TIME: {[key: string]: XcloudWaitTimeInfo} = {};