havana-static v0.1.3
Havana static
A static response handler.
Havana static works with a server side response/request
dispatcher such as
Havana server
or a library with an interchangeable API. When a dispatcher
publishes a response.received event, Havana static will
search the defined static directory for the resource. If
Havana static matches the resource it will publish a
response.send event, publishing the response data for
consumption by the dispatcher. If Havana static does not
match the resource it will publish a response.handler.error
event to notify the dispatcher that it has not matched the
resource.
How to install
npm install havana-staticHow to use
import Event from 'havana-event';
import path from 'path';
import Server from 'havana-server';
import Static from 'havana-static';
const event = new Event();
const reporting = {
'level': 2,
'reporter': console.log,
};
const server = new Server({
'event': event,
'reporting': reporting,
});
new Static({
'event': event,
'reporting': reporting,
'rootDir': __dirname,
'staticDir': 'public',
});
server.listen( 3000 );Event list
Events take the form of Havana event or a library with an interchangeable API.
Publish
response.handler.register: Signifies that Havana static will now attempt to handle requests.response.send: Signifies that Havana static has matched a request, publishing the response data for consumption by a request/response dispatcher.response.handler.error: Signifies that Havana static was unable to match a request.
Subscribe
request.received: Allows a request/response dispatcher to notify Havana static that it has received a request, publishing the request data for consumption by Havana static.
ES2015+
Havana static 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 static.js.
Havana static currently requires the
Babel polyfill.
You are expected to supply this yourself. However, as a
courtesy you will also find static.with-polyfill.js in the
dist directory.