const Path = require('path') const Hapi = require('@hapi/hapi') const Inert = require('@hapi/inert') function serverFactory(routes, address, port, tls) { this.server = new Hapi.Server({ routes: { files: { relativeTo: Path.join(__dirname, '../') } }, address: address, port: port, tls: tls }) this.startServer = async () => { try { await this.server.register([Inert]) this.server.route(routes) await this.server.start() delete this.startServer return this.server } catch (e) { console.error(e) throw e } } } module.exports = serverFactory