@bbc/spartacus
Version:
81 lines (53 loc) • 2.85 kB
JavaScript
;
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;