mirror of
https://github.com/hydralauncher/hydra.git
synced 2026-01-25 20:01:03 +00:00
36 lines
1017 B
TypeScript
36 lines
1017 B
TypeScript
import type { LibraryGame } from "@types";
|
|
import { registerEvent } from "../register-event";
|
|
import {
|
|
downloadsSublevel,
|
|
gamesShopAssetsSublevel,
|
|
gamesSublevel,
|
|
} from "@main/level";
|
|
|
|
const getLibrary = async (): Promise<LibraryGame[]> => {
|
|
return gamesSublevel
|
|
.iterator()
|
|
.all()
|
|
.then((results) => {
|
|
return Promise.all(
|
|
results
|
|
.filter(([_key, game]) => game.isDeleted === false)
|
|
.map(async ([key, game]) => {
|
|
const download = await downloadsSublevel.get(key);
|
|
const gameAssets = await gamesShopAssetsSublevel.get(key);
|
|
|
|
return {
|
|
id: key,
|
|
...game,
|
|
download: download ?? null,
|
|
...gameAssets,
|
|
// Ensure compatibility with LibraryGame type
|
|
libraryHeroImageUrl:
|
|
game.libraryHeroImageUrl ?? gameAssets?.libraryHeroImageUrl,
|
|
} as LibraryGame;
|
|
})
|
|
);
|
|
});
|
|
};
|
|
|
|
registerEvent("getLibrary", getLibrary);
|