germ
Version:
Opinionated boilerplate to unify server and client side code
46 lines (38 loc) • 970 B
JavaScript
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;
}