UNPKG

germ

Version:

Opinionated boilerplate to unify server and client side code

46 lines (38 loc) 970 B
var crossroads = require('crossroads') , webApp = require('../controllers/web-app') , indexView = require('../components/index'); var routes = crossroads.create() , routeState; // [RUN-IN-SERVER] we need to always fire a route change. // for example if two sequential request for /test & /test // hit the routes we need to always fire a change but, for // the [RUN-IN-CLIENT] we only want to fire when history url // changes like /test to /home if(process.env.RUN_ENV === 'server') { routes.ignoreState = true; } routes.addRoute(/.*/, function(){ console.log('match') routeState = { view: indexView, //# you do not need a controller //controller: webApp, props: { } }; }); routes.bypassed.add(function() { routeState = false; }); /** * * @param url * @returns a Ract component */ module.exports = function(url) { routeState = null; routes.parse(url); if(routeState) { routeState.url = url; } return routeState; }