UNPKG

@bbc/spartacus

Version:
51 lines (42 loc) 1.29 kB
import express from 'express'; import compression from 'compression'; import expressStaticGzip from 'express-static-gzip'; // not part of react-helmet import helmet from 'helmet'; import gnuTP from 'gnu-terry-pratchett'; import nodeLogger from '../utilities/loggers/logger.node'; // require instead of import because the relative imports need to run first const morgan = require('morgan'); const logger = nodeLogger(`spartacus:${__filename}`); const publicDirectory = 'build/public'; logger.debug( `Application outputting logs to directory "${process.env.LOG_DIR}"`, ); /* eslint class-methods-use-this: ["error", { "exceptMethods": ["write"] }] */ class LoggerStream { write(message) { logger.info(message.substring(0, message.lastIndexOf('\n'))); } } const server = () => express(); const expressServer = server() .disable('x-powered-by') .use( morgan('tiny', { skip: (req, res) => res.statusCode === 200, stream: new LoggerStream(), }), ) .use(compression()) .use(helmet({ frameguard: { action: 'deny' } })) .use( expressStaticGzip(publicDirectory, { enableBrotli: true, orderPreference: ['br'], }), ) .use(gnuTP()) .get('/status', (req, res) => { res.sendStatus(200); }); export default expressServer;