UNPKG

hatchyt

Version:
105 lines (71 loc) 3.26 kB
#! /usr/bin/env node 'use strict'; var _express = require('express'); var _express2 = _interopRequireDefault(_express); var _multer = require('multer'); var _multer2 = _interopRequireDefault(_multer); var _bodyParser = require('body-parser'); var _bodyParser2 = _interopRequireDefault(_bodyParser); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _site = require('./server/routes/site'); var _site2 = _interopRequireDefault(_site); var _hatch = require('./server/routes/hatch'); var _hatch2 = _interopRequireDefault(_hatch); var _requirements = require('./server/requirements'); var _requirements2 = _interopRequireDefault(_requirements); var _settings = require('./shared/settings'); var _settings2 = _interopRequireDefault(_settings); var _raven = require('raven'); var _raven2 = _interopRequireDefault(_raven); var _prompt = require('./server/prompt'); var _prompt2 = _interopRequireDefault(_prompt); var _package = require('../package.json'); var _package2 = _interopRequireDefault(_package); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // determine if requirements are set up (database, directories) var ready = (0, _requirements2.default)(); var storage = (0, _multer2.default)(); var app = (0, _express2.default)(); app.use(versionView); // insert version into each view context app.use(storage.array()); // use multer to handle response body app.use(_bodyParser2.default.urlencoded({ extended: false })); // use body.urlencode to hande urlecndoed posts app.set('trust proxy', true); // client’s IP address is understood as the left-most entry in the X-Forwarded-* header app.set('view engine', 'jade'); app.set('views', _path2.default.join(__dirname, '..', 'views')); app.use('/site', _site2.default.routes); // internal views app.use('/', _hatch2.default); // externam views // Sentry error logging if (process.env.HATCHYT_ENV != 'dev') { app.use(_raven2.default.middleware.express.requestHandler(_settings2.default.SENTRY)); app.use(_raven2.default.middleware.express.errorHandler(_settings2.default.SENTRY)); } // Static directories app.use(_express2.default.static(_path2.default.join(__dirname, 'public'))); // public javascript and css app.use(_express2.default.static('output')); // ?? app.use(_express2.default.static(_path2.default.join(__dirname, '..', 'libs'))); // third-party assets app.use(onError); if (process.argv.indexOf('--initial') > -1) { (0, _prompt2.default)(); } else { !ready ? (0, _prompt2.default)(main) : main(); // Kickoff! } function main() { app.listen(80).on('error', function (e) { app.listen(_settings2.default.PORT); console.log('Hatchyt is running on port ' + _settings2.default.PORT + '!'); }); } // The error id is attached to `res.sentry` to be returned // and optionally displayed to the user for support. function onError(err, req, res, next) { var msg = process.env.HATCHYT_ENV === 'dev' ? err.toString() : res.sentry; res.statusCode = 500; res.end("Oops!\n" + msg); } // expose version to the views function versionView(req, res, next) { res.locals.version = _package2.default.version; next(); } //# sourceMappingURL=server.js.map