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"
}
},
"callsite": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
"dev": true
},
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@ -1554,6 +1560,15 @@
"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": {
"version": "1.2.0",
"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/parser": "^4.21.0",
"converse.js": "^7.0.5",
"decache": "^4.6.0",
"eslint": "^7.20.0",
"eslint-config-standard": "^16.0.2",
"eslint-config-standard-with-typescript": "^20.0.0",

View File

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