diff --git a/.eslintignore b/.eslintignore index 82b6ba85..a9ba028c 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1 @@ .eslintrc.js -electron.vite.config.ts diff --git a/.eslintrc.js b/.eslintrc.js index 3013908a..59f3401f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -26,7 +26,7 @@ module.exports = { 'import/newline-after-import': 'error', 'import/no-default-export': 'off', 'import/no-duplicates': 'error', - 'import/no-unresolved': ['error', { ignore: ['^virtual:'] }], + 'import/no-unresolved': ['error', { ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack', '^youtubei.js$'] }], 'import/order': [ 'error', { diff --git a/package.json b/package.json index a80d8472..e8abf3f5 100644 --- a/package.json +++ b/package.json @@ -148,6 +148,7 @@ "butterchurn-presets": "3.0.0-beta.4", "conf": "10.2.0", "custom-electron-prompt": "1.5.7", + "dbus-next": "0.10.2", "electron-debug": "3.2.0", "electron-is": "3.0.0", "electron-localshortcut": "3.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0be26678..74292a7b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,6 +55,9 @@ dependencies: custom-electron-prompt: specifier: 1.5.7 version: 1.5.7(electron@27.0.3) + dbus-next: + specifier: 0.10.2 + version: 0.10.2 electron-debug: specifier: 3.2.0 version: 3.2.0 diff --git a/src/plugins/in-app-menu/front.ts b/src/plugins/in-app-menu/front.ts index afe9ca0f..0a863a06 100644 --- a/src/plugins/in-app-menu/front.ts +++ b/src/plugins/in-app-menu/front.ts @@ -7,7 +7,6 @@ import maximizeRaw from './assets/maximize.svg?inline'; import unmaximizeRaw from './assets/unmaximize.svg?inline'; import type { Menu } from 'electron'; -import * as electron from 'electron'; function $(selector: string) { return document.querySelector(selector); diff --git a/src/plugins/shortcuts/mpris-service.d.ts b/src/plugins/shortcuts/mpris-service.d.ts index f85bae20..e5201050 100644 --- a/src/plugins/shortcuts/mpris-service.d.ts +++ b/src/plugins/shortcuts/mpris-service.d.ts @@ -1,7 +1,7 @@ declare module '@jellybrick/mpris-service' { import { EventEmitter } from 'events'; - import dbus from 'dbus-next'; + import { interface as dbusInterface } from 'dbus-next'; interface RootInterfaceOptions { @@ -101,7 +101,7 @@ declare module '@jellybrick/mpris-service' { static LOOP_STATUS_PLAYLIST: 'Playlist'; } - interface MprisInterface extends dbus.interface.Interface { + interface MprisInterface extends dbusInterface.Interface { setProperty(property: string, valuePlain: unknown): void; } diff --git a/src/plugins/sponsorblock/tests/segments.test.js b/src/plugins/sponsorblock/tests/segments.test.js index 002bff8f..e01ad7c4 100644 --- a/src/plugins/sponsorblock/tests/segments.test.js +++ b/src/plugins/sponsorblock/tests/segments.test.js @@ -1,3 +1,5 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ + const { test, expect } = require('@playwright/test'); const { sortSegments } = require('../segments'); diff --git a/src/plugins/visualizer/visualizers/visualizer.ts b/src/plugins/visualizer/visualizers/visualizer.ts index 3e40c18b..dd8ea84d 100644 --- a/src/plugins/visualizer/visualizers/visualizer.ts +++ b/src/plugins/visualizer/visualizers/visualizer.ts @@ -8,13 +8,13 @@ export abstract class Visualizer { abstract visualizer: T; protected constructor( - audioContext: AudioContext, - audioSource: MediaElementAudioSourceNode, - visualizerContainer: HTMLElement, - canvas: HTMLCanvasElement, - audioNode: GainNode, - stream: MediaStream, - options: ConfigType<'visualizer'>, + _audioContext: AudioContext, + _audioSource: MediaElementAudioSourceNode, + _visualizerContainer: HTMLElement, + _canvas: HTMLCanvasElement, + _audioNode: GainNode, + _stream: MediaStream, + _options: ConfigType<'visualizer'>, ) {} abstract resize(width: number, height: number): void; diff --git a/src/preload.ts b/src/preload.ts index 85b901b4..73047713 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -22,7 +22,7 @@ enabledPluginNameAndOptions.forEach(async ([plugin, options]) => { if (Object.hasOwn(preloadPluginList, plugin)) { const handler = preloadPluginList[plugin]; try { - await handler?.(); + await handler?.(options); } catch (error) { console.error(`Error in plugin "${plugin}": ${String(error)}`); } diff --git a/src/virtual-module.d.ts b/src/virtual-module.d.ts index b96254f3..77d4ef6d 100644 --- a/src/virtual-module.d.ts +++ b/src/virtual-module.d.ts @@ -14,7 +14,9 @@ declare module 'virtual:MenuPlugins' { } declare module 'virtual:PreloadPlugins' { - export const pluginList: Record Promise>; + import type { ConfigType } from './config/dynamic'; + + export const pluginList: Record Promise>; } declare module 'virtual:RendererPlugins' {