npm install livewireStreaming HTTP routing for Node.js. Best served with Oban and a dash of water. Built on Highland.
``bash`
npm install livewire
`livescript
{route, get, post} = require \livewire
{ok, not-found} = require \dram
{body-params} = require \corps
User = require \theoretical-user-model
templates = require \theoretical-templater
route [
get '/' -> ok "hello"
get '/user/:id' (req)-> User.get req.params.id .chain templates.user
post '/user/:id' (req)->
params <- body-params JSON.parse, req .chain
model <- User.get req.params.id .chain
<- model.update params .save! .chain
redirect '/user/#id'
]
`
route returns a function that takes a request and returns a result Stream. Funnily enough, that's exactly the kind of function you serve with Oban. Have a look at Peat and Dram if you need fancy responses.
respond : ∀a. Method → Path → (Request → Stream a) → Request → Stream a.otherwise#### get, post et al
Are just respond partially applied with the method.
/, it matches a path prefix, unless the path is / exactly. Paths can contain parameters, which are of the form :ident. This match any non-/ string, and extract the value into req.params under the key given by the identifier.©2012-2014 Matt Brennan