Fix plugin unregister: unload all modules.

This commit is contained in:
John Livingston 2021-04-08 03:47:55 +02:00
parent 490d6f18c3
commit 0bad31dddb
3 changed files with 26 additions and 0 deletions

15
package-lock.json generated
View File

@ -1136,6 +1136,12 @@
"get-intrinsic": "^1.0.2" "get-intrinsic": "^1.0.2"
} }
}, },
"callsite": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
"dev": true
},
"callsites": { "callsites": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@ -1554,6 +1560,15 @@
"ms": "2.0.0" "ms": "2.0.0"
} }
}, },
"decache": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/decache/-/decache-4.6.0.tgz",
"integrity": "sha512-PppOuLiz+DFeaUvFXEYZjLxAkKiMYH/do/b/MxpDe/8AgKBi5GhZxridoVIbBq72GDbL36e4p0Ce2jTGUwwU+w==",
"dev": true,
"requires": {
"callsite": "^1.0.0"
}
},
"decamelize": { "decamelize": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",

View File

@ -31,6 +31,7 @@
"@typescript-eslint/eslint-plugin": "^4.21.0", "@typescript-eslint/eslint-plugin": "^4.21.0",
"@typescript-eslint/parser": "^4.21.0", "@typescript-eslint/parser": "^4.21.0",
"converse.js": "^7.0.5", "converse.js": "^7.0.5",
"decache": "^4.6.0",
"eslint": "^7.20.0", "eslint": "^7.20.0",
"eslint-config-standard": "^16.0.2", "eslint-config-standard": "^16.0.2",
"eslint-config-standard-with-typescript": "^20.0.0", "eslint-config-standard-with-typescript": "^20.0.0",

View File

@ -1,5 +1,9 @@
import { initSettings } from './lib/settings' import { initSettings } from './lib/settings'
import { initRouters } from './lib/routers' import { initRouters } from './lib/routers'
import type { Logger } from 'winston'
const decache = require('decache')
let logger: Logger | undefined
async function register ({ async function register ({
registerSetting, registerSetting,
@ -7,6 +11,8 @@ async function register ({
getRouter, getRouter,
peertubeHelpers peertubeHelpers
}: RegisterServerOptions): Promise<any> { }: RegisterServerOptions): Promise<any> {
logger = peertubeHelpers.logger
await initSettings({ registerSetting }) await initSettings({ registerSetting })
await initRouters({ await initRouters({
settingsManager, settingsManager,
@ -16,6 +22,10 @@ async function register ({
} }
async function unregister (): Promise<any> { async function unregister (): Promise<any> {
const module = __filename
logger?.info(`Unloading module ${module}...`)
decache(module)
logger?.info(`Successfully unloaded the module ${module}`)
} }
module.exports = { module.exports = {