refactor: handle HMR

This commit is contained in:
NGPixel
2018-01-27 17:39:55 -05:00
parent f0e45ece6f
commit 9e7f6b6eb1
5 changed files with 95 additions and 30 deletions

View File

@@ -106,6 +106,20 @@ module.exports = async () => {
app.locals.moment.locale(wiki.config.site.lang)
app.locals.config = wiki.config
// ----------------------------------------
// HMR (Dev Mode Only)
// ----------------------------------------
if (global.DEV) {
const webpackDevMiddleware = require('webpack-dev-middleware')
const webpackHotMiddleware = require('webpack-hot-middleware')
app.use(webpackDevMiddleware(global.WP, {
publicPath: global.WPCONFIG.output.publicPath,
logger: wiki.logger
}))
app.use(webpackHotMiddleware(global.WP))
}
// ----------------------------------------
// Controllers
// ----------------------------------------
@@ -149,6 +163,8 @@ module.exports = async () => {
// Start HTTP server
// ----------------------------------------
let srvConnections = {}
wiki.logger.info(`HTTP Server on port: [ ${wiki.config.port} ]`)
app.set('port', wiki.config.port)
@@ -173,9 +189,24 @@ module.exports = async () => {
}
})
wiki.server.on('connection', conn => {
let key = `${conn.remoteAddress}:${conn.remotePort}`
srvConnections[key] = conn
conn.on('close', function() {
delete srvConnections[key]
})
})
wiki.server.on('listening', () => {
wiki.logger.info('HTTP Server: [ RUNNING ]')
})
wiki.server.destroy = (cb) => {
wiki.server.close(cb)
for (let key in srvConnections) {
srvConnections[key].destroy()
}
}
return true
}