havana-browser
v0.1.7
Published
A client-side request/response dispatcher
Downloads
15
Maintainers
Readme
Havana browser
A client-side request/response dispatcher.
Havana browser intercepts click
and popstate
events,
publishes a request.received
event and subscribes to
response.send
events published by a response handler.
When a response.send
event is received Havana browser
patches the DOM with the response content using
virtual dom.
How to install
npm install havana-browser
How to use
import Browser from 'havana-browser';
import Event from 'havana-event';
const event = new Event();
const reporting = {
'level': 2,
'reporter': console.log.bind( console ),
};
const browser = new Browser({
'event': event,
'reporting': reporting,
});
// Add a response handler here
browser.listen();
Event list
Events take the form of Havana event or a library with an interchangeable API.
Publish
request.listening
: Signifies that Havana browser will now attempt to interceptclick
andpopstate
events.request.received
: Signifies that Havana browser has received a request on the specified port, publishing the request data for consumption by response handlers.response.error
: Signifies that all registered response handlers have failed to provide a response.
Subscribe
response.handler.register
: Allows a response handler to notify Havana browser that it will attempt to handle requests.response.handler.error
: Allows a response handler to notify Havana browser that it has not been able to handle the request.response.send
: Allows a response handler to notify Havana browser that it has handled the request successfully, publishing the response data for consumption by Havana browser.
ES2015+
Havana browser 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 two files, the default
is browser.js
.
Havana browser currently requires the
Babel polyfill.
You are expected to supply this yourself. However, as a
courtesy you will also find browser.with-polyfill.js
in the
dist
directory.