mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-03-09 15:40:26 +00:00
Merge remote-tracking branch 'upstream/main' into feature/better-repack-modal
This commit is contained in:
commit
7bdf7f8c2d
81 changed files with 1105 additions and 2004 deletions
|
|
@ -92,7 +92,4 @@ const getRecentlyAddedCatalogue = async (
|
|||
return results.slice(0, resultSize);
|
||||
};
|
||||
|
||||
registerEvent(getCatalogue, {
|
||||
name: "getCatalogue",
|
||||
memoize: true,
|
||||
});
|
||||
registerEvent("getCatalogue", getCatalogue);
|
||||
|
|
|
|||
|
|
@ -72,7 +72,4 @@ const getGameShopDetails = async (
|
|||
throw new Error("Not implemented");
|
||||
};
|
||||
|
||||
registerEvent(getGameShopDetails, {
|
||||
name: "getGameShopDetails",
|
||||
memoize: true,
|
||||
});
|
||||
registerEvent("getGameShopDetails", getGameShopDetails);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,4 @@ const getGames = async (
|
|||
return { results, cursor: i };
|
||||
};
|
||||
|
||||
registerEvent(getGames, {
|
||||
name: "getGames",
|
||||
memoize: true,
|
||||
});
|
||||
registerEvent("getGames", getGames);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,4 @@ const getHowLongToBeat = async (
|
|||
});
|
||||
};
|
||||
|
||||
registerEvent(getHowLongToBeat, {
|
||||
name: "getHowLongToBeat",
|
||||
memoize: true,
|
||||
});
|
||||
registerEvent("getHowLongToBeat", getHowLongToBeat);
|
||||
|
|
|
|||
|
|
@ -36,6 +36,4 @@ const getRandomGame = async (_event: Electron.IpcMainInvokeEvent) => {
|
|||
return state.games[state.index];
|
||||
};
|
||||
|
||||
registerEvent(getRandomGame, {
|
||||
name: "getRandomGame",
|
||||
});
|
||||
registerEvent("getRandomGame", getRandomGame);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,4 @@ const getMagnetHealth = async (
|
|||
return webTorrentData.getSeedersAndPeers(magnet);
|
||||
};
|
||||
|
||||
registerEvent(getMagnetHealth, {
|
||||
name: "getMagnetHealth",
|
||||
});
|
||||
registerEvent("getMagnetHealth", getMagnetHealth);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,4 @@ const searchGameRepacks = (
|
|||
return searchRepacks(query);
|
||||
};
|
||||
|
||||
registerEvent(searchGameRepacks, {
|
||||
name: "searchGameRepacks",
|
||||
memoize: true,
|
||||
});
|
||||
registerEvent("searchGameRepacks", searchGameRepacks);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,4 @@ const searchGamesEvent = async (
|
|||
return searchGames({ query, take: 12 });
|
||||
};
|
||||
|
||||
registerEvent(searchGamesEvent, {
|
||||
name: "searchGames",
|
||||
memoize: true,
|
||||
});
|
||||
registerEvent("searchGames", searchGamesEvent);
|
||||
|
|
|
|||
|
|
@ -7,6 +7,4 @@ const getDiskFreeSpace = async (
|
|||
path: string
|
||||
) => checkDiskSpace(path);
|
||||
|
||||
registerEvent(getDiskFreeSpace, {
|
||||
name: "getDiskFreeSpace",
|
||||
});
|
||||
registerEvent("getDiskFreeSpace", getDiskFreeSpace);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ import "./library/close-game";
|
|||
import "./library/delete-game-folder";
|
||||
import "./library/get-game-by-object-id";
|
||||
import "./library/get-library";
|
||||
import "./library/get-repackers-friendly-names";
|
||||
import "./library/open-game";
|
||||
import "./library/open-game-installer";
|
||||
import "./library/remove-game";
|
||||
|
|
|
|||
|
|
@ -42,6 +42,4 @@ const addGameToLibrary = async (
|
|||
});
|
||||
};
|
||||
|
||||
registerEvent(addGameToLibrary, {
|
||||
name: "addGameToLibrary",
|
||||
});
|
||||
registerEvent("addGameToLibrary", addGameToLibrary);
|
||||
|
|
|
|||
|
|
@ -36,6 +36,4 @@ const closeGame = async (
|
|||
return false;
|
||||
};
|
||||
|
||||
registerEvent(closeGame, {
|
||||
name: "closeGame",
|
||||
});
|
||||
registerEvent("closeGame", closeGame);
|
||||
|
|
|
|||
|
|
@ -47,6 +47,4 @@ const deleteGameFolder = async (
|
|||
}
|
||||
};
|
||||
|
||||
registerEvent(deleteGameFolder, {
|
||||
name: "deleteGameFolder",
|
||||
});
|
||||
registerEvent("deleteGameFolder", deleteGameFolder);
|
||||
|
|
|
|||
|
|
@ -16,6 +16,4 @@ const getGameByObjectID = async (
|
|||
},
|
||||
});
|
||||
|
||||
registerEvent(getGameByObjectID, {
|
||||
name: "getGameByObjectID",
|
||||
});
|
||||
registerEvent("getGameByObjectID", getGameByObjectID);
|
||||
|
|
|
|||
|
|
@ -28,6 +28,4 @@ const getLibrary = async () =>
|
|||
)
|
||||
);
|
||||
|
||||
registerEvent(getLibrary, {
|
||||
name: "getLibrary",
|
||||
});
|
||||
registerEvent("getLibrary", getLibrary);
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
import { registerEvent } from "../register-event";
|
||||
import { stateManager } from "@main/state-manager";
|
||||
|
||||
const getRepackersFriendlyNames = async () =>
|
||||
stateManager.getValue("repackersFriendlyNames").reduce((prev, next) => {
|
||||
return { ...prev, [next.name]: next.friendlyName };
|
||||
}, {});
|
||||
|
||||
registerEvent(getRepackersFriendlyNames, {
|
||||
name: "getRepackersFriendlyNames",
|
||||
memoize: true,
|
||||
});
|
||||
|
|
@ -55,6 +55,4 @@ const openGameInstaller = async (
|
|||
return false;
|
||||
};
|
||||
|
||||
registerEvent(openGameInstaller, {
|
||||
name: "openGameInstaller",
|
||||
});
|
||||
registerEvent("openGameInstaller", openGameInstaller);
|
||||
|
|
|
|||
|
|
@ -13,6 +13,4 @@ const openGame = async (
|
|||
shell.openPath(executablePath);
|
||||
};
|
||||
|
||||
registerEvent(openGame, {
|
||||
name: "openGame",
|
||||
});
|
||||
registerEvent("openGame", openGame);
|
||||
|
|
|
|||
|
|
@ -8,6 +8,4 @@ const removeGameFromLibrary = async (
|
|||
gameRepository.update({ id: gameId }, { isDeleted: true });
|
||||
};
|
||||
|
||||
registerEvent(removeGameFromLibrary, {
|
||||
name: "removeGameFromLibrary",
|
||||
});
|
||||
registerEvent("removeGameFromLibrary", removeGameFromLibrary);
|
||||
|
|
|
|||
|
|
@ -20,6 +20,4 @@ const removeGame = async (
|
|||
);
|
||||
};
|
||||
|
||||
registerEvent(removeGame, {
|
||||
name: "removeGame",
|
||||
});
|
||||
registerEvent("removeGame", removeGame);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,4 @@ import { registerEvent } from "../register-event";
|
|||
const openExternal = async (_event: Electron.IpcMainInvokeEvent, src: string) =>
|
||||
shell.openExternal(src);
|
||||
|
||||
registerEvent(openExternal, {
|
||||
name: "openExternal",
|
||||
});
|
||||
registerEvent("openExternal", openExternal);
|
||||
|
|
|
|||
|
|
@ -13,6 +13,4 @@ const showOpenDialog = async (
|
|||
throw new Error("Main window is not available");
|
||||
};
|
||||
|
||||
registerEvent(showOpenDialog, {
|
||||
name: "showOpenDialog",
|
||||
});
|
||||
registerEvent("showOpenDialog", showOpenDialog);
|
||||
|
|
|
|||
|
|
@ -1,37 +1,11 @@
|
|||
import { ipcMain } from "electron";
|
||||
|
||||
import { stateManager } from "@main/state-manager";
|
||||
|
||||
interface EventArgs {
|
||||
name: string;
|
||||
memoize?: boolean;
|
||||
}
|
||||
|
||||
export const registerEvent = (
|
||||
listener: (event: Electron.IpcMainInvokeEvent, ...args: any[]) => any,
|
||||
{ name, memoize = false }: EventArgs
|
||||
name: string,
|
||||
listener: (event: Electron.IpcMainInvokeEvent, ...args: any[]) => any
|
||||
) => {
|
||||
ipcMain.handle(name, (event: Electron.IpcMainInvokeEvent, ...args) => {
|
||||
const eventResults = stateManager.getValue("eventResults");
|
||||
const keys = Array.from(eventResults.keys());
|
||||
|
||||
const key = [name, args] as [string, any[]];
|
||||
|
||||
const memoizationKey = keys.find(([memoizedEvent, memoizedArgs]) => {
|
||||
const sameEvent = name === memoizedEvent;
|
||||
const sameArgs = memoizedArgs.every((arg, index) => arg === args[index]);
|
||||
|
||||
return sameEvent && sameArgs;
|
||||
});
|
||||
|
||||
if (memoizationKey) return eventResults.get(memoizationKey);
|
||||
|
||||
ipcMain.handle(name, async (event: Electron.IpcMainInvokeEvent, ...args) => {
|
||||
return Promise.resolve(listener(event, ...args)).then((result) => {
|
||||
if (memoize) {
|
||||
eventResults.set(key, JSON.parse(JSON.stringify(result)));
|
||||
stateManager.setValue("eventResults", eventResults);
|
||||
}
|
||||
|
||||
if (!result) return result;
|
||||
return JSON.parse(JSON.stringify(result));
|
||||
});
|
||||
|
|
|
|||
|
|
@ -50,6 +50,4 @@ const cancelGameDownload = async (
|
|||
});
|
||||
};
|
||||
|
||||
registerEvent(cancelGameDownload, {
|
||||
name: "cancelGameDownload",
|
||||
});
|
||||
registerEvent("cancelGameDownload", cancelGameDownload);
|
||||
|
|
|
|||
|
|
@ -27,6 +27,4 @@ const pauseGameDownload = async (
|
|||
});
|
||||
};
|
||||
|
||||
registerEvent(pauseGameDownload, {
|
||||
name: "pauseGameDownload",
|
||||
});
|
||||
registerEvent("pauseGameDownload", pauseGameDownload);
|
||||
|
|
|
|||
|
|
@ -46,6 +46,4 @@ const resumeGameDownload = async (
|
|||
}
|
||||
};
|
||||
|
||||
registerEvent(resumeGameDownload, {
|
||||
name: "resumeGameDownload",
|
||||
});
|
||||
registerEvent("resumeGameDownload", resumeGameDownload);
|
||||
|
|
|
|||
|
|
@ -97,6 +97,4 @@ const startGameDownload = async (
|
|||
}
|
||||
};
|
||||
|
||||
registerEvent(startGameDownload, {
|
||||
name: "startGameDownload",
|
||||
});
|
||||
registerEvent("startGameDownload", startGameDownload);
|
||||
|
|
|
|||
|
|
@ -16,6 +16,4 @@ const autoLaunch = async (
|
|||
}
|
||||
};
|
||||
|
||||
registerEvent(autoLaunch, {
|
||||
name: "autoLaunch",
|
||||
});
|
||||
registerEvent("autoLaunch", autoLaunch);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,4 @@ const getUserPreferences = async () =>
|
|||
where: { id: 1 },
|
||||
});
|
||||
|
||||
registerEvent(getUserPreferences, {
|
||||
name: "getUserPreferences",
|
||||
});
|
||||
registerEvent("getUserPreferences", getUserPreferences);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,4 @@ const updateUserPreferences = async (
|
|||
);
|
||||
};
|
||||
|
||||
registerEvent(updateUserPreferences, {
|
||||
name: "updateUserPreferences",
|
||||
});
|
||||
registerEvent("updateUserPreferences", updateUserPreferences);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue