koa-awaitable
A couple of functions to allow Koa to accept async / await endpoints and middleware
Api
Handler
.handler: (fn: () => Promise<any>): Generator<any, any, any>
The above signature expresses the interface for this function in flowtype's syntax.
In plain english, the handler function expects as its argument a function which returns a promise. That function, when executed, will have its context bound to Koa's request context.
It returns a generator function, which is what Koa will expect to receive.
Middleware
.middleware: (before: () => Promise<any>, after: () => Promise<any>): () => Generator<any, any, any>
The above signature expresses the interface for this function in flowtype's syntax.
The middleware function expects as its arguments two functions which return a promise. Those functions, when executed, will have their context bound to Koa's request context.
The first function will be executed prior to the execution of the subsequent middleware or handlers in the stack, the second function after.
That's all!
Usage
Note, the examples are in ES6 / ES7 syntax. Sorry if that doesn't float your boat. I'd love a PR. :)
let app = let router = let middle = awaitable router app app // Sending a GET to localhost:8888 should return '1 2 3'