Skip to content

Never have to worry about Koa's middleware compatibility

Notifications You must be signed in to change notification settings

th507/koa-adapter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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(async (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.

About

Never have to worry about Koa's middleware compatibility

Resources

Stars

Watchers

Forks

Packages

No packages published