wayfarer

Composable trie based router

wayfarer

Composable trie based router.

$ npm install wayfarer
const wayfarer = require('wayfarer')
 
const router = wayfarer('/404')
 
router.on('/', () => console.log('/'))
router.on('/404', uri => console.log('404 %s not found', uri))
router.on('/:user', (uri, param) => console.log('user is %s', param.user))
 
router('/tobi')
// => 'user is tobi' 
 
router('/uh/oh')
// => '404 /uh/oh not found' 

Routers can be infinitely nested, allowing routing to be scoped per view.

const wayfarer = require('wayfarer')
 
const r1 = wayfarer()
const r2 = wayfarer()
 
r1.on('/', r2)
r2.on('/', () => console.log('subrouter trix!'))
 
r1('/')
// => 'subrouter trix!' 

Initialize a router with a default route. Doesn't ignore querystrings and hashes.

Register a new route. The order in which routes are registered does not matter. See routington.define() for all route options.

Match a route and execute the corresponding callback. Alias: router.emit().

Routers like react-router are complicated solutions for a simple problem. All I want is a methodless router that's as simple as EventEmitter and allows composition by mounting subrouters as handlers.

MIT