Socket
Book a DemoInstallSign in
Socket

koa-yup-validator

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

koa-yup-validator

Koa middleware for validating and coercing request data.

4.1.0
latest
Source
npmnpm
Version published
Weekly downloads
241
-51.61%
Maintainers
1
Weekly downloads
 
Created
Source

koa-yup-validator CircleCI Greenkeeper badge

Koa middleware for validating and coercing request data.

Usage

yarn add yup koa-yup-validator

import createValidator from "koa-yup-validator";
const validator = createValidator(validators, options); /* see below */

Arguments

validators

{
  body: schema; // validates request body
  headers: schema; // validates request headers
  params: schema; // validates path params
  query: schema; // validates query params
}

options:

Specify options for each validator ie.

{
  body: options
}
partialAllows data to satisfy schema partially at root level (if the data key exists it must satisfy schema). Useful for example patch operations.
yupOptions to be passed to yup validate.

Error handling

There is an optional error middleware you may use for handling errors thrown by the validation middleware:

import { createErrorMiddleware } from "koa-yup-validator";
app.use(createErrorMiddleware());
//...your routes

Examples

Validate headers and body

import * as yup from "yup";
import validator from "koa-yup-validator";

const Pizza = yup.object().shape({
  name: yup.string().required(),
  toppings: yup.array().of(yup.string()),
});
const RequiredHeaders = yup.object().shape({
  Authorization: yup.string().required(),
  "x-pizza-maker": yup.string(),
});

router.post(
  "/pizza",
  validator({ body: Pizza, headers: RequiredHeaders }),
  (ctx) => {
    console.log(ctx.request.headers["x-pizza-maker"]);
    ctx.response.status = 200;
    ctx.response.body = "Valid pizza!";
  }
);

// Pass yup options for body
router.post(
  "/strict-pizza",
  validator(
    { body: Pizza, headers: RequiredHeaders },
    { body: { yup: { strict: true } } }
  ),
  (ctx) => {
    console.log(ctx.request.headers["x-pizza-maker"]);
    ctx.response.status = 200;
    ctx.response.body = "Valid pizza!";
  }
);

FAQs

Package last updated on 29 Jul 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.