diff --git a/config/dynamic.ts b/config/dynamic.ts index 01134b53..6e93dd45 100644 --- a/config/dynamic.ts +++ b/config/dynamic.ts @@ -104,7 +104,7 @@ export class PluginConfig { } get = keyof ConfigType>(key: Key): ConfigType[Key] { - return this.config[key]; + return this.config?.[key]; } set(key: keyof ConfigType, value: ValueOf>) { diff --git a/plugins/adblocker/config.ts b/plugins/adblocker/config.ts index 59cd7ee9..e8bad5a5 100644 --- a/plugins/adblocker/config.ts +++ b/plugins/adblocker/config.ts @@ -12,9 +12,7 @@ export const blockers = { export const shouldUseBlocklists = async () => await config.get('blocker') !== blockers.InPlayer; -export default { +export default Object.assign(config, { shouldUseBlocklists, blockers, - get: config.get.bind(this), - set: config.set.bind(this), -}; +}); diff --git a/plugins/captions-selector/config.ts b/plugins/captions-selector/config.ts index 97867c7e..f7878eb9 100644 --- a/plugins/captions-selector/config.ts +++ b/plugins/captions-selector/config.ts @@ -1,4 +1,4 @@ import { PluginConfig } from '../../config/dynamic'; const config = new PluginConfig('captions-selector', { enableFront: true }); -export default { ...config } as PluginConfig<'captions-selector'>; +export default config; diff --git a/plugins/crossfade/config.ts b/plugins/crossfade/config.ts index 186ff14d..ffe2232d 100644 --- a/plugins/crossfade/config.ts +++ b/plugins/crossfade/config.ts @@ -1,4 +1,4 @@ import { PluginConfig } from '../../config/dynamic'; const config = new PluginConfig('crossfade', { enableFront: true }); -export default { ...config } as PluginConfig<'crossfade'>; +export default config; diff --git a/plugins/downloader/config.ts b/plugins/downloader/config.ts index ec22de5a..69b1cb78 100644 --- a/plugins/downloader/config.ts +++ b/plugins/downloader/config.ts @@ -1,4 +1,4 @@ import { PluginConfig } from '../../config/dynamic'; const config = new PluginConfig('downloader'); -export default { ...config } as PluginConfig<'downloader'>; +export default config; diff --git a/plugins/downloader/front.ts b/plugins/downloader/front.ts index b53f5dfc..8393376d 100644 --- a/plugins/downloader/front.ts +++ b/plugins/downloader/front.ts @@ -43,7 +43,8 @@ const menuObserver = new MutationObserver(() => { // TODO: re-enable once contextIsolation is set to true // contextBridge.exposeInMainWorld("downloader", { // download: () => { -export const download = () => { +// eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-member-access +(global as any).download = () => { let videoUrl = getSongMenu() // Selector of first button which is always "Start Radio" ?.querySelector('ytmusic-menu-navigation-item-renderer[tabindex="0"] #navigation-endpoint') diff --git a/plugins/notifications/config.ts b/plugins/notifications/config.ts index 91244414..91605f7a 100644 --- a/plugins/notifications/config.ts +++ b/plugins/notifications/config.ts @@ -2,4 +2,4 @@ import { PluginConfig } from '../../config/dynamic'; const config = new PluginConfig('notifications'); -export default { ...config } as PluginConfig<'notifications'>; +export default config; diff --git a/plugins/utils.ts b/plugins/utils.ts index 441af4f8..73df857a 100644 --- a/plugins/utils.ts +++ b/plugins/utils.ts @@ -5,7 +5,6 @@ import { ipcMain, ipcRenderer } from 'electron'; import { ValueOf } from '../utils/type-utils'; - // Creates a DOM element from an HTML string export const ElementFromHtml = (html: string): HTMLElement => { const template = document.createElement('template');