mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-21 23:22:05 +00:00
fix: fix unloader
This commit is contained in:
@ -21,6 +21,8 @@ const createContext = (id: string): PreloadContext<PluginConfig> => ({
|
||||
});
|
||||
|
||||
export const forceUnloadPreloadPlugin = (id: string) => {
|
||||
if (!loadedPluginMap[id]) return;
|
||||
|
||||
const hasStopped = stopPlugin(id, loadedPluginMap[id], {
|
||||
ctx: 'preload',
|
||||
context: createContext(id),
|
||||
@ -73,7 +75,7 @@ export const loadAllPreloadPlugins = () => {
|
||||
const pluginConfigs = config.plugins.getPlugins();
|
||||
|
||||
for (const [pluginId, pluginDef] of Object.entries(preloadPlugins)) {
|
||||
const config = deepmerge(pluginDef.config, pluginConfigs[pluginId] ?? {}) ;
|
||||
const config = deepmerge(pluginDef.config ?? { enable: false }, pluginConfigs[pluginId] ?? {}) ;
|
||||
|
||||
if (config.enabled) {
|
||||
forceLoadPreloadPlugin(pluginId);
|
||||
|
||||
@ -145,7 +145,8 @@ export default createPlugin({
|
||||
];
|
||||
},
|
||||
|
||||
async renderer({ getConfig }) {
|
||||
renderer: {
|
||||
async onPlayerApiReady(_, { getConfig }) {
|
||||
const config = await getConfig();
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
@ -218,4 +219,5 @@ export default createPlugin({
|
||||
{ passive: true },
|
||||
);
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@ -126,10 +126,11 @@ export const stopPlugin = <Config extends PluginConfig>(
|
||||
if (!def || !def[options.ctx]) return false;
|
||||
if (typeof def[options.ctx] === 'function') return false;
|
||||
|
||||
const stop = def[options.ctx] as PluginLifecycleSimple<Config, unknown>;
|
||||
if (!stop) return null;
|
||||
const defCtx = def[options.ctx] as { stop: PluginLifecycleSimple<Config, unknown> } | undefined;
|
||||
if (!defCtx?.stop) return null;
|
||||
|
||||
try {
|
||||
const stop = defCtx.stop;
|
||||
const start = performance.now();
|
||||
stop.bind(def[options.ctx])(
|
||||
options.context as Config & typeof options.context,
|
||||
|
||||
Reference in New Issue
Block a user