description and source-codeconfig => {
config = validate(config);
const renderedHtml =
fs.readFileSync(path.join(__dirname, '/public/index.html'))
.toString()
.replace(/{{title}}/g, config.title)
.replace(/{{port}}/g, config.port)
.replace(/{{script}}/g, fs.readFileSync(path.join(__dirname, '/public/javascripts/app.js')))
.replace(/{{style}}/g, fs.readFileSync(path.join(__dirname, '/public/stylesheets/style.css')));
const middleware = (req, res, next) => {
socketIoInit(req.socket.server, config);
const startTime = process.hrtime();
if (req.path === config.path) {
if (config.iframe) {
if (res.removeHeader) {
res.removeHeader('X-Frame-Options');
}
if (res.remove) {
res.remove('X-Frame-Options');
}
}
res.send(renderedHtml);
} else {
onHeaders(res, () => {
onHeadersListener(res.statusCode, startTime, config.spans);
});
next();
}
};
middleware.middleware = middleware;
middleware.pageRoute = (req, res) => {
res.send(renderedHtml);
};
return middleware;
}