koa-spife v0.1.1
koa-spife
Bastardize a @npm/spife-based application
into Koa.
Important note
This module was written as a helper for transitioning from @npm/spife to Koa.
As such, it tries to do its best, but with the differences between the frameworks,
no promises can be made as to full compatibility.
Another caveat: this isn't really a wrapper for spife, as much as it's a
wrapper for reverse. Why call it
koa-spife, then? reverse is non-prescriptive when it comes to the signature
of the route method - that's where spife comes in. It likes its functions'
signatures to look like this: function (SpifeRequest, Map) -> Promise<Result>.
koa-spife continues employing this signature to maintain compatibility, except
SpifeRequest is actually a koa.Request.
Wicked, right? Until I fix it, that is.
Usage
Take the following spife constructor call:
spife('pos-backend', http.createServer(), urls(), [
require('@npm/spife/middleware/common')(),
require('@npm/spife/middleware/body-json')(),
])We can migrate this to Koa:
const app = new Koa()
app.use(require('koa-bodyparser')())
app.use(require('koa-spife')(urls()))Why?
Something about holes in feet. Or me
being bored on vacation. Or reverse being, in my opinion, one of the most
elegant routers out there.