fusepilot / koa-if

Conditionally run middleware in Koa
3 stars 3 forks source link

koa-if

Conditionally run middleware in Koa

Note: only tested with the new async/await style middleware in koa 2

Install

npm install --save koa-if

API

Usage:

import Koa from 'koa'
import test from 'koa-if'

const app = new Koa()

async function normalMiddleware(ctx, next) {
  if (!ctx.body) ctx.body = '<h1>Normal</h1>'
  await next()
}

async function specialMiddleware(ctx, next) {
  if (!ctx.body) ctx.body = '<h1>Special</h2>'
  await next()
}

app.use(normalMiddleware)

// only run specialMiddleware on /special
app.use(test(specialMiddleware, (ctx) => {
  return ctx.url == '/special'
}))

app.listen(3000)

Now, localhost:3000/special will show "Special" while all other urls will show "Normal".

License

MIT