Files
drop/desktop/main/types.ts
T
DecDuck 9185089c99 Fix v0.4.0 process handler, add override menu (#430)
* Fix Windows and Linux launch

* Add process handler selector, pin Prisma

* Regenerate lcofkiel

* Fix torrential inclusion in image

* Fix layouting

* Implement tree kill for Windows

* Fix server lint
2026-06-21 15:24:33 +10:00

124 lines
2.4 KiB
TypeScript

import type { Component } from "vue";
export type NavigationItem = {
prefix: string;
route: string;
label: string;
};
export type QuickActionNav = {
icon: Component;
notifications?: number;
action: () => Promise<void>;
};
export type User = {
id: string;
username: string;
admin: boolean;
displayName: string;
profilePictureObjectId: string;
};
type UmuState = "Installed" | "NotInstalled" | "NotNeeded";
export type AppState = {
status: AppStatus;
umuState: UmuState;
user?: User;
};
export type Game = {
id: string;
type: "Game" | "Executor" | "Redist";
mName: string;
mShortDescription: string;
mDescription: string;
mIconObjectId: string;
mBannerObjectId: string;
mCoverObjectId: string;
mImageLibraryObjectIds: string[];
mImageCarouselObjectIds: string[];
};
export type Collection = {
id: string;
name: string;
isDefault: boolean;
isTools?: boolean;
entries: Array<{ gameId: string; game: Game }>;
};
export type GameVersion = {
userConfiguration: {
launchTemplate: string;
overrideProtonPath: string;
overrideHandler: string | undefined;
enableUpdates: boolean
};
setups: Array<{ platform: string }>;
launches: Array<{ platform: string }>;
};
export enum AppStatus {
NotConfigured = "NotConfigured",
Offline = "Offline",
SignedOut = "SignedOut",
SignedIn = "SignedIn",
SignedInNeedsReauth = "SignedInNeedsReauth",
ServerUnavailable = "ServerUnavailable",
}
export type EmptyGameStatusEnum =
| "Remote"
| "Queued"
| "Downloading"
| "Validating"
| "Updating"
| "Uninstalling"
| "Running";
export enum InstalledType {
PartiallyInstalled = "PartiallyInstalled",
SetupRequired = "SetupRequired",
Installed = "Installed",
}
export interface InstalledGameStatusData {
install_type: { type: InstalledType };
version_id: string;
install_dir: string;
update_available: boolean;
}
export type GameStatus =
| {
type: EmptyGameStatusEnum;
}
| ({
type: "Installed";
} & InstalledGameStatusData);
export type GameStatusEnum = GameStatus["type"];
export type RawGameStatus = [GameStatus | null, GameStatus | null];
export enum DownloadableType {
Game = "Game",
Tool = "Tool",
DLC = "DLC",
Mod = "Mod",
}
export type DownloadableMetadata = {
id: string;
version: string;
downloadType: DownloadableType;
};
export type Settings = {
autostart: boolean;
maxDownloadThreads: number;
forceOffline: boolean;
};