Merge branch 'feature/typescript' of github.com:Mastermindzh/tidal-hifi into feature/theming

This commit is contained in:
Rick van Lieshout 2023-05-13 22:55:10 +02:00
commit 822bdf401e
9 changed files with 82 additions and 9 deletions

View File

@ -10,6 +10,10 @@ insert_final_newline = true
indent_style = space indent_style = space
indent_size = 2 indent_size = 2
[**.ts]
indent_style = space
indent_size = 2
[**.json] [**.json]
indent_style = space indent_style = space
indent_size = 2 indent_size = 2

View File

@ -5,6 +5,10 @@ on:
branches-ignore: branches-ignore:
- master - master
- develop - develop
pull_request:
branches-ignore:
- master
- develop
jobs: jobs:
build_on_linux: build_on_linux:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@ -5,6 +5,10 @@ on:
branches: branches:
- master - master
- develop - develop
pull_request:
branches:
- master
jobs: jobs:
build_on_linux: build_on_linux:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -16,7 +20,7 @@ jobs:
- uses: actions/checkout@master - uses: actions/checkout@master
- uses: actions/setup-node@master - uses: actions/setup-node@master
with: with:
node-version: 16 node-version: 19
- run: npm install - run: npm install
- run: npm run build - run: npm run build
- uses: actions/upload-artifact@master - uses: actions/upload-artifact@master
@ -25,12 +29,12 @@ jobs:
path: dist/ path: dist/
build_on_mac: build_on_mac:
runs-on: macOS-latest runs-on: macos-latest
steps: steps:
- uses: actions/checkout@master - uses: actions/checkout@master
- uses: actions/setup-node@master - uses: actions/setup-node@master
with: with:
node-version: 16 node-version: 19
- run: npm install - run: npm install
- run: npm run build - run: npm run build
- uses: actions/upload-artifact@master - uses: actions/upload-artifact@master
@ -44,7 +48,7 @@ jobs:
- uses: actions/checkout@master - uses: actions/checkout@master
- uses: actions/setup-node@master - uses: actions/setup-node@master
with: with:
node-version: 16 node-version: 19
- run: npm install - run: npm install
- run: npm run build - run: npm run build
- uses: actions/upload-artifact@master - uses: actions/upload-artifact@master

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 }], gpuRasterization: [{ flag: "enable-gpu-rasterization", value: undefined }],
disableHardwareMediaKeys: [{ flag: "disable-features", value: "HardwareMediaKeyHandling" }], disableHardwareMediaKeys: [{ flag: "disable-features", value: "HardwareMediaKeyHandling" }],
}; };

View File

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

View File

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

View File

@ -67,7 +67,7 @@ export const createSettingsWindow = function () {
}, },
}); });
settingsWindow.on("close", (event: any) => { settingsWindow.on("close", (event: Event) => {
if (settingsWindow != null) { if (settingsWindow != null) {
event.preventDefault(); event.preventDefault();
settingsWindow.hide(); 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": { "compilerOptions": {
"typeRoots": ["src/types"],
"module": "commonjs", "module": "commonjs",
"target": "ES6", "target": "ES6",
"noImplicitAny": true, "noImplicitAny": true,