UNPKG

polar

Version:

boilerplate for a basic express setup with metaserve

72 lines (64 loc) 2.51 kB
// Generated by CoffeeScript 1.8.0 (function() { var express, express_busboy, express_session, setup, utils, __slice = [].slice; express = require('express'); express_busboy = require('express-busboy'); express_session = require('express-session'); utils = require('./utils'); setup = function() { var RedisStore, app, config, configs, middleware, _i, _len, _ref, _ref1, _ref2; configs = 1 <= arguments.length ? __slice.call(arguments, 0) : []; config = utils.merge_all(configs); app = config.app || express(); if (config.app) { app = config.app; delete config.app; } app.config = config; app.set('views', config.view_dir || config.static_dir || '.'); app.set('view engine', config.view_engine || 'pug'); app.use(config.logger || function(req, res, next) { console.log("[" + (new Date().toISOString()) + "] " + req.method + " " + req.url); return next(); }); app.use(express.json(config.json)); express_busboy.extend(app, Object.assign(config.busboy || {}, { upload: true })); if (config.session != null) { RedisStore = require('connect-redis')(express_session); app.use(express_session(utils.merge_objs({ key: "sid:" + (((_ref = config.session.cookie) != null ? _ref.domain : void 0) || "*"), store: new RedisStore({ host: ((_ref1 = config.redis) != null ? _ref1.host : void 0) || 'localhost' }), cookie: { maxAge: 1000 * 60 * 60 * 24 * 30 * 3 } }, config.session))); } if (config.middleware != null) { _ref2 = config.middleware; for (_i = 0, _len = _ref2.length; _i < _len; _i++) { middleware = _ref2[_i]; app.use(middleware); } } app.useMetaserve = function() { var metaserve, _ref3, _ref4; metaserve = require('metaserve'); return app.use(metaserve(((_ref3 = config.metaserve) != null ? _ref3.config : void 0) || config.static_dir, ((_ref4 = config.metaserve) != null ? _ref4.compilers : void 0) || { css: [!config.debug ? require('metaserve-bouncer') : void 0, require('metaserve-css-postcss')], js: [!config.debug ? require('metaserve-bouncer') : void 0, require('metaserve-js-coffee-reactify')] })); }; app.start = function() { return app.listen(config.port, function() { return console.info("Listening on :" + config.port); }); }; return app; }; module.exports = setup; }).call(this);