audiobookshelf/server/routers/ClientRouter.js
2023-05-04 23:52:36 +02:00

39 lines
891 B
JavaScript

const express = require('express')
const mime = require('mime-types')
const Path = require('path')
const Logger = require('../Logger')
class ClientRouter {
constructor(appRoot, routerBasePath = '') {
this.appRoot = appRoot
this.routerBasePath = routerBasePath
this.client = null
this.router = express()
this.router.disable('x-powered-by')
}
async init () {
const clientDir = Path.join(this.appRoot, '/client')
const { handler } = await import(Path.join(clientDir, '.output/server/index.mjs'))
this.client = handler
}
async start () {
Logger.info('[Client] Starting')
await this.init()
this.router.use('/', this.client)
}
async stop () {
if (this.client) {
await this.client.close()
Logger.info('[Client] Stopped')
} else {
Logger.error('Client not running')
}
}
}
module.exports = ClientRouter