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]