wayfarer
Composable trie based router.
Installation
$ npm install wayfarer
Usage
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')
router('/uh/oh')
Subrouting
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('/')
API
router = wayfarer(default)
Initialize a router with a default route. Doesn't ignore querystrings and hashes.
router.on(route, cb)
Register a new route. The order in which routes are registered does not matter.
See routington.define()
for all route options.
router(route)
Match a route and execute the corresponding callback. Alias: router.emit()
.
Why?
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.
See Also
License
MIT