UNPKG

@bbc/spartacus

Version:
81 lines (53 loc) 2.85 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); // not part of react-helmet var _express = require('express'); var _express2 = _interopRequireDefault(_express); var _compression = require('compression'); var _compression2 = _interopRequireDefault(_compression); var _expressStaticGzip = require('express-static-gzip'); var _expressStaticGzip2 = _interopRequireDefault(_expressStaticGzip); var _helmet = require('helmet'); var _helmet2 = _interopRequireDefault(_helmet); var _gnuTerryPratchett = require('gnu-terry-pratchett'); var _gnuTerryPratchett2 = _interopRequireDefault(_gnuTerryPratchett); var _logger = require('../utilities/loggers/logger.node'); var _logger2 = _interopRequireDefault(_logger); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // require instead of import because the relative imports need to run first var morgan = require('morgan'); var logger = (0, _logger2.default)('spartacus:' + __filename); var publicDirectory = 'build/public'; logger.debug('Application outputting logs to directory "' + process.env.LOG_DIR + '"'); /* eslint class-methods-use-this: ["error", { "exceptMethods": ["write"] }] */ var LoggerStream = function () { function LoggerStream() { _classCallCheck(this, LoggerStream); } _createClass(LoggerStream, [{ key: 'write', value: function write(message) { logger.info(message.substring(0, message.lastIndexOf('\n'))); } }]); return LoggerStream; }(); var server = function server() { return (0, _express2.default)(); }; var expressServer = server().disable('x-powered-by').use(morgan('tiny', { skip: function skip(req, res) { return res.statusCode === 200; }, stream: new LoggerStream() })).use((0, _compression2.default)()).use((0, _helmet2.default)({ frameguard: { action: 'deny' } })).use((0, _expressStaticGzip2.default)(publicDirectory, { enableBrotli: true, orderPreference: ['br'] })).use((0, _gnuTerryPratchett2.default)()).get('/status', function (req, res) { res.sendStatus(200); }); exports.default = expressServer;