From 42a89129d42497188f03f579075c859da8ec8270 Mon Sep 17 00:00:00 2001 From: Samuel Elliott Date: Wed, 22 Aug 2018 17:44:30 +0100 Subject: [PATCH] Move unloading plugin main script to the plugin manager --- client/src/modules/contentmanager.js | 2 +- client/src/modules/pluginapi.js | 6 +----- client/src/modules/pluginmanager.js | 4 ++++ 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/client/src/modules/contentmanager.js b/client/src/modules/contentmanager.js index b410ad69..da815d57 100644 --- a/client/src/modules/contentmanager.js +++ b/client/src/modules/contentmanager.js @@ -307,7 +307,7 @@ export default class { const index = this.getContentIndex(content); - delete Globals.require.cache[Globals.require.resolve(content.paths.mainPath)]; + if (this.unloadContentHook) this.unloadContentHook(content); if (reload) { const newcontent = await this.preloadContent(content.dirName, true, index); diff --git a/client/src/modules/pluginapi.js b/client/src/modules/pluginapi.js index aac1f025..cd4ec5bd 100644 --- a/client/src/modules/pluginapi.js +++ b/client/src/modules/pluginapi.js @@ -279,11 +279,7 @@ export default class PluginApi { } addModal(_modal, component) { const modal = Modals.add(_modal, component); - modal.on('close', () => { - let index; - while ((index = this.modalStack.findIndex(m => m === modal)) > -1) - this.modalStack.splice(index, 1); - }); + modal.on('close', () => Utils.removeFromArray(this.modalStack, modal)); this.modalStack.push(modal); return modal; } diff --git a/client/src/modules/pluginmanager.js b/client/src/modules/pluginmanager.js index bcc93e32..079a9ae1 100644 --- a/client/src/modules/pluginmanager.js +++ b/client/src/modules/pluginmanager.js @@ -128,6 +128,10 @@ export default class extends ContentManager { static get unloadPlugin() { return this.unloadContent } static get reloadPlugin() { return this.reloadContent } + static unloadContentHook(content, reload) { + delete Globals.require.cache[Globals.require.resolve(content.paths.mainPath)]; + } + /** * Stops a plugin. * @param {Plugin|String} plugin