peertube-plugin-livechat/server/main.ts

41 lines
1.2 KiB
TypeScript
Raw Normal View History

import { initSettings } from './lib/settings'
2021-04-09 17:29:44 +00:00
import { initRouters } from './lib/routers/index'
2021-04-13 15:13:41 +00:00
import { ensureProsodyRunning, ensureProsodyNotRunning } from './lib/prosody/ctl'
2021-04-09 09:22:46 +00:00
import decache from 'decache'
2021-06-02 10:48:24 +00:00
// FIXME: Peertube unregister don't have any parameter.
// Using this global variable to fix this, so we can use helpers to unregister.
2021-04-13 15:13:41 +00:00
let OPTIONS: RegisterServerOptions | undefined
2021-04-07 14:52:38 +00:00
2021-04-09 17:39:40 +00:00
async function register (options: RegisterServerOptions): Promise<any> {
2021-04-13 15:13:41 +00:00
OPTIONS = options
2021-04-09 17:39:40 +00:00
await initSettings(options)
await initRouters(options)
2021-04-13 15:13:41 +00:00
await ensureProsodyRunning(options)
2019-07-16 14:39:36 +00:00
}
async function unregister (): Promise<any> {
2021-04-13 15:13:41 +00:00
if (OPTIONS) {
try {
await ensureProsodyNotRunning(OPTIONS)
} catch (error) {
OPTIONS.peertubeHelpers.logger.error('Error when trying to unload Prosody: ' + (error as string))
}
}
const module = __filename
2021-04-13 15:13:41 +00:00
OPTIONS?.peertubeHelpers.logger.info(`Unloading module ${module}...`)
2021-06-02 10:48:24 +00:00
// Peertube calls decache(plugin) on register, not unregister.
// Will do here, to release memory.
decache(module)
2021-04-13 15:13:41 +00:00
OPTIONS?.peertubeHelpers.logger.info(`Successfully unloaded the module ${module}`)
OPTIONS = undefined
2019-07-16 14:39:36 +00:00
}
module.exports = {
register,
unregister
}