[WIP] http-fantasy-land
A web server library that allows you to create your server using functional concepts.
Getting Started
npm install --save http-fantasy-land
; const home = ...response statusCode: 200 body: 'It works!'; const router = ; ;
API
route functions
A route is a function that, given a request object and a response object, returns a new response (or a promise that resolves to one).
[TODO: elaborate]
request
The request object is serialized, immutable representation of an http.IncomingMessage object.
method: String url: String headers: key: String: String
response
The response object is a serialized, immutable representation of an http.ServerResponse object.
status: Number body: String|Stream headers: key: String: String
listen
listen :: ((Object, Object) -> Object, Object) -> Promise<() -> void>
Description:
Creates and starts a http/https server using the supplied route and options. Returns a promise that resolves to a stop()
function.
Arguments
- route :: (Object, Object) -> Object
- A Route function. Accepts a response object and a request object. Returns a new response object.
- options :: Object
-
Server Configuration Options. Accepts port, hostname, and backlog from http.listen, as well as any option accepted by https.createServer
See the links above for detailed descriptions of each option.
Return Value: Function - A function that stops the server.
Example:
;
composeRoutes(...routes) => route
sendFile(file) => route
setHeader(name)(value) => route
get('/path', route) => route
head('/path', route) => route
post('/path', route) => route
put('/path', route) => route
del('/path', route) => route
connect('/path', route) => route
options('/path', route) => route
trace('/path', route) => route
patch('/path', route) => route
Compatibility
[TODO: document usage w/ express/connect/etc.]