@samitouri / QOSami-HFS / commits / 8d2ddc6c

fix: deleting/renaming a plugin folder didn't update admin-panel

Massimo Melina committed Jun 30, 2023 at 15:10 UTC 8d2ddc6c9fb05b183f8de0574bea303e38d46f5d
1 file changed +12 -7
src/plugins.ts
+12 -7
@@ -277,12 +277,8 @@ function watchPlugin(id: string, path: string) {
277 })
278 const { unwatch } = watchLoad(module, async (source) => {
279 const notRunning = availablePlugins[id]
280 - if (!source) {
281 - await stop()
282 - delete availablePlugins[id]
283 - events.emit('pluginUninstalled', id)
284 - return
285 - }
280 + if (!source)
281 + return onUninstalled()
282 if (isPluginEnabled(id))
283 return start()
284 const p = parsePluginSource(id, source)
@@ -290,7 +286,16 @@ function watchPlugin(id: string, path: string) {
286 availablePlugins[id] = p
287 events.emit(notRunning ? 'pluginUpdated' : 'pluginInstalled', p)
288 })
293 - return unwatch
289 + return () => {
290 + unwatch()
291 + return onUninstalled()
292 + }
293 +
294 + async function onUninstalled() {
295 + await stop()
296 + delete availablePlugins[id]
297 + events.emit('pluginUninstalled', id)
298 + }
299
300 async function markItAvailable() {
301 delete plugins[id]