chore: removed last 'any' types + added declaration for mpris-service's Player class

This commit is contained in:
Rick van Lieshout 2023-05-13 22:45:15 +02:00
parent 62244f432a
commit 60eb1bbef9
7 changed files with 70 additions and 5 deletions

View File

@ -10,6 +10,10 @@ insert_final_newline = true
indent_style = space
indent_size = 2
[**.ts]
indent_style = space
indent_size = 2
[**.json]
indent_style = space
indent_size = 2
@ -50,4 +54,4 @@ trim_trailing_whitespace = ignore
charset = ignore
[{test/fixtures,deps,tools/eslint,tools/gyp,tools/icu,tools/msvs}/**]
insert_final_newline = false
insert_final_newline = false

View File

@ -1,4 +1,4 @@
export const flags: { [key: string]: { flag: string; value?: any }[] } = {
export const flags: { [key: string]: { flag: string; value?: string }[] } = {
gpuRasterization: [{ flag: "enable-gpu-rasterization", value: undefined }],
disableHardwareMediaKeys: [{ flag: "disable-features", value: "HardwareMediaKeyHandling" }],
};

View File

@ -13,7 +13,7 @@ import { setTitle } from "./scripts/window-functions";
const notificationPath = `${app.getPath("userData")}/notification.jpg`;
const appName = "Tidal Hifi";
let currentSong = "";
let player: any;
let player: Player;
let currentPlayStatus = statuses.paused;
const elements = {

View File

@ -18,7 +18,7 @@ export const startExpress = (mainWindow: BrowserWindow) => {
* @param {*} res
* @param {*} action
*/
function handleGlobalEvent(res: Response, action: any) {
function handleGlobalEvent(res: Response, action: string) {
mainWindow.webContents.send("globalEvent", action);
res.sendStatus(200);
}

View File

@ -66,7 +66,7 @@ export const createSettingsWindow = function () {
},
});
settingsWindow.on("close", (event: any) => {
settingsWindow.on("close", (event: Event) => {
if (settingsWindow != null) {
event.preventDefault();
settingsWindow.hide();

60
src/types/mpris-service.d.ts vendored Normal file
View File

@ -0,0 +1,60 @@
declare class InitOptions {
name: string;
identity: string;
supportedUriSchemes: string[];
supportedMimeTypes: string[];
supportedInterfaces: string[];
desktopEntry: string;
}
declare class Player {
metadata: {
"xesam:title": string;
"xesam:artist": string[];
"xesam:album": string;
"mpris:artUrl": string;
"mpris:length": number;
"mpris:trackid": string;
// other options
[key: string]: string | number | string[] | object;
};
playbackStatus: string;
identity: string;
fullscreen: boolean;
supportedUriSchemes: string[];
supportedMimeTypes: string[];
canQuit: boolean;
canRaise: boolean;
canSetFullscreen: boolean;
hasTrackList: boolean;
desktopEntry: string;
loopStatus: string;
shuffle: boolean;
volume: number;
canControl: boolean;
canPause: boolean;
canPlay: boolean;
canSeek: boolean;
canGoNext: boolean;
canGoPrevious: boolean;
rate: number;
minimumRate: number;
maximumRate: number;
playlists: string[];
activePlaylist: string;
constructor(opts: { name: string; supportedInterfaces?: string[] });
constructor(opts: InitOptions);
getPosition(): number;
seeked(): void;
getTrackIndex(trackId: number): number;
getTrack(trackId: number): string;
addTrack(track: object): void;
removeTrack(trackId: number): number;
getPlaylistIndex(playlistId: number): number;
setPlaylists(playlists: object): void;
setActivePlaylist(playlistId: number): void;
on(event: string | symbol, listener: (...args: object[]) => void): this;
}

View File

@ -1,5 +1,6 @@
{
"compilerOptions": {
"typeRoots": ["src/types"],
"module": "commonjs",
"target": "ES6",
"noImplicitAny": true,