UNPKG

alpha-one

Version:

ideas about recurring tasks in Web- and Backend-Application building

181 lines (116 loc) 4.02 kB
// Generated by CoffeeScript 1.7.1 (function() { var A1, OPTIONS, RedisStore, TRM, TYPES, alert, app, app_info, app_key, badge, days, debug, echo, express, express_options, help, hours, info, log, milliseconds, minutes, months, njs_path, redis_options, restrict_view, rpr, seconds, server_options, templates, view, warn, weeks, whisper, years; njs_path = require('path'); OPTIONS = require('coffeenode-options'); TYPES = require('coffeenode-types'); TRM = require('coffeenode-trm'); rpr = TRM.rpr.bind(TRM); badge = 'α1/main'; log = TRM.get_logger('plain', badge); info = TRM.get_logger('info', badge); whisper = TRM.get_logger('whisper', badge); alert = TRM.get_logger('alert', badge); debug = TRM.get_logger('debug', badge); warn = TRM.get_logger('warn', badge); help = TRM.get_logger('help', badge); echo = TRM.echo.bind(TRM); templates = require('./templates'); express = require('express'); RedisStore = (require('connect-redis'))(express); app_info = OPTIONS.get_app_info(); /* Name used to store info on the `request` object: */ app_key = app_info['name']; A1 = require('./main'); view = A1.get_view_for(templates); restrict_view = A1.get_restrict_view_for(templates); milliseconds = 1; seconds = 1000 * milliseconds; minutes = 60 * seconds; hours = 60 * minutes; days = 24 * hours; weeks = 7 * days; months = 30 * days; years = 365 * days; server_options = { 'host': '127.0.0.1', 'port': 80 }; express_options = { 'static-routes': ['public', 'common'], 'logger': { 'format': 'dev' } }; redis_options = { 'host': '127.0.0.1', 'port': 6379 }; express_options['redis'] = redis_options; express_options['session'] = { 'secret': 'verysecretindeed', 'store': new RedisStore({ host: redis_options['host'], port: redis_options['port'], ttl: 2 * weeks }), 'cookie': { maxAge: 2 * weeks } }; (require('./validate-redis-is-running'))(redis_options); app = express(); app.use(A1.get_request_counter()); app.use(express.json()); app.use(express.urlencoded()); app.use(express.cookieParser('ztfgGHzqk3')); app.use(express.session(express_options['session'])); app.use(A1.add_request_options()); app.use(A1.flash_notifications()); app.use(express.logger(express_options['logger']['format'])); (function() { var fs_route, static_route, _i, _len, _ref, _results; _ref = express_options['static-routes']; _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { static_route = _ref[_i]; static_route = '/'.concat(njs_path.basename(static_route)); fs_route = njs_path.join(app_info['home'], static_route); app.use(static_route, express["static"](fs_route)); _results.push(info("static route:", TRM.gold(static_route), TRM.grey('->', fs_route))); } return _results; })(); app.use(A1.show_sid(express_options['session']['secret'])); app.all('*', A1.show_debug_info()); app.get('/', view('homepage')); app.get('/contact', view('contact')); app.get('/imprint', view('imprint')); app.get('/privacy', view('privacy')); app.get('/welcome', view('welcome', { 'remember-location': false })); app.get('/goodbye', view('goodbye', { 'remember-location': false })); app.get('/login', view('login_get', { 'remember-location': false })); app.post('/login', view('login_post', { 'remember-location': false })); app.post('/signup', view('signup_post', { 'remember-location': false })); app.all('/logout', view('logout', { 'remember-location': false })); app.get('/restricted', restrict_view('user', 'restricted')); app.use(view('not_found')); app.listen(server_options['port'], function(error) { if (error != null) { throw error; } return log(TRM.green("listening to " + server_options['host'] + ":" + server_options['port'])); }); }).call(this);