0.0.3 • Published 8 years ago

koa-adapter v0.0.3

Weekly downloads
41
License
MIT
Repository
github
Last release
8 years ago

Koa Adapter

NPM version build status

Never have to worry about Koa's middleware compatibility.

Koa-adapter enables you to use 1.0 middlewares in Koa 2.0+.

Installation

$ npm install koa-adapter

Example

You could choose one of the two methods.

Adapt individual middleware

const adapt = require("koa-adapter")

// koa-logger@1 only support koa@1
const logger = require("koa-logger")
const koa = require("koa")

const app = new Koa()
// use legacy middlewares with adapt(...)
app.use(adapt(logger))

// and new ones directly
app.use(ctx => {
  ctx.body = "Hello world"
})

Modify Koa::use

Support old (generator) middleware and the new middleware syntax

const Adapter = require("koa-adapter").Adapter

const _Koa = require("koa")
// create a thin wrapper for Koa::use
const Koa = Adapter(_Koa)

const app = new Koa()

// use Koa 1.0 middleware
app.use(function*(next) {
  const start = Date.now()

  yield next

  const ms = Date.now() - start
  console.log(`${this.method} ${this.url} - ${ms}ms`)
})

// or use new syntax
app.use(ctx => {
  ctx.body = "Hello World"
})

// or use `async` function (Babel required)
app.use((ctx, next) => {
  const start = new Date
  await next()
  const ms = new Date - start
  console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
})

License

Copyright (c) 2015 Jingwei "John" Liu

Licensed under the MIT license.