let server = null; module.exports = { onPrepare: function() { return new Promise(function(resolve) { const webpack = require('webpack'); const middleware = require('webpack-dev-middleware'); const express = require('express'); const expressWs = require('@dannycoates/express-ws'); const assets = require('../common/assets'); const routes = require('../server/routes'); const tests = require('./frontend/routes'); const app = express(); const config = require('../webpack.config'); const wpm = middleware(webpack(config(null, { mode: 'development' })), { logLevel: 'silent' }); app.use(wpm); assets.setMiddleware(wpm); expressWs(app, null, { perMessageDeflate: false }); routes(app); app.ws('/api/ws', require('../server/routes/ws')); tests(app); wpm.waitUntilValid(() => { server = app.listen(8000, resolve); }); }); }, onComplete: function() { server.close(); } };