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 Source: https://github.com/yuzu-emu/yuzu-mainline/blob/master/src/input_common/drivers/mouse.cpp
*/ */
export class EmulatedMkbHandler extends MkbHandler { export class EmulatedMkbHandler extends MkbHandler {
static #instance: EmulatedMkbHandler; private static instance: EmulatedMkbHandler;
public static getInstance(): EmulatedMkbHandler { public static getInstance = () => EmulatedMkbHandler.instance ?? (EmulatedMkbHandler.instance = new EmulatedMkbHandler());
if (!EmulatedMkbHandler.#instance) {
EmulatedMkbHandler.#instance = new EmulatedMkbHandler();
}
return EmulatedMkbHandler.#instance;
}
#CURRENT_PRESET_DATA = MkbPreset.convert(MkbPreset.DEFAULT_PRESET); #CURRENT_PRESET_DATA = MkbPreset.convert(MkbPreset.DEFAULT_PRESET);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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