Havana router
A simple router for routed response handlers.
Havana router subscribes to the route.find
event published
by a routed response handler. When it receives a route.find
event it will iterate through the array of routes it was
instantiated with, attempting to match on the url
and
method
. If it matches a route Havana router will publish a
route.found
event for the routed response handler to
consume. If it fails to match a route Havana router will
publish a route.error
event.
How to install
npm install havana-router
How to use
;;; const event = ; const reporting = 'level': 2 'reporter': consolelog; const server = 'event': event 'reporting': reporting; 'event': event 'reporting': reporting 'routes': 'url': '/' 'method': 'GET' 'content': 'Home page' 'url': '/about' 'method': 'GET' 'content': 'About page' ; // Add a routed response handler here server;
Event list
Events take the form of Havana event or a library with an interchangeable API.
Publish
route.found
: Signifies that Havana router has matched a route, publishing the route data for consumption by a routed response handler.route.error
: Signifies that Havana router was unable to match a route.
Subscribe
route.find
: Allows a routed response handler to notify Havana router that it wishes to receive route data that matches the publishedurl
andmethod
.
ES2015+
Havana router is written using ES2015+ syntax.
However, by default this module will use an ES5 compatible file that has been compiled using Babel.
In the dist
directory there are four files, the default
is router.server.js
. The default when using a client-side
bundler that supports the
browser field
spec is router.browser.js
.
Havana router currently requires the
Babel polyfill.
You are expected to supply this yourself. However, as a
courtesy you will also find router.server.with-polyfill.js
and router.browser.with-polyfill.js
in the dist
directory.