@salsita/koa-joi-middleware

[![NPM version](https://img.shields.io/npm/v/@salsita/koa-joi-middleware.svg)](https://www.npmjs.com/package/@salsita/koa-joi-middleware) ![Downloads](https://img.shields.io/npm/dm/@salsita/koa-joi-middleware.svg?style=flat) ![Licence](https://img.shields

Usage no npm install needed!

<script type="module">
  import salsitaKoaJoiMiddleware from 'https://cdn.skypack.dev/@salsita/koa-joi-middleware';
</script>

README

@salsita/koa-joi-middleware

NPM version Downloads Licence Dependency Status devDependency Status

Middleware used on routes to validate input.

Example:

const joi = require("@hapi/joi");
const Router = require("koa-router");
const joiMiddleware = require("@salsita/koa-joi-middleware");

const router = new Router();

const paramsSchema = joi.object().keys({
  id: joi.number().integer().positive().required()
}).required();
const bodySchema = joi.object().keys({
  name: joi.string().max(1024).required(),
  email: joi.string().email().max(1024).required()
}).required();

router.patch(
  '/:id',
  joiMiddleware([
    { get: ctx => ctx.params, schema: paramsSchema },
    { get: ctx => ctx.request.body, schema: bodySchema },
  ],
  async ctx => { /* perform stuff */ }
);