GithubHelp home page GithubHelp logo

matteogauthier / next-validations Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jellydn/next-validations

0.0 0.0 0.0 2.83 MB

(fork) NextJS API Validations, support Yup, Fastest-Validator, Joi, and more

Home Page: https://next-validations.productsway.com/

License: MIT License

TypeScript 89.72% CSS 10.28%

next-validations's Introduction

Welcome to next-validations ๐Ÿ‘‹

Version Downloads/week Prerequisite License: MIT Twitter: jellydn

NextJS API Validations

๐Ÿ  Homepage

โœจ Demo

https://gyazo.com/bf4582f7b7aa0f0ae67c4cc337c4e974.gif

Prerequisites

  • node >=12
  • nextjs >= 9

Install

yarn add next-validations

Features

Usage

Validate custom API endpoint with Yup

yarn add yup next-validations
import { NextApiRequest, NextApiResponse } from 'next';
import { withValidation } from 'next-validations';
import * as yup from 'yup';

const schema = yup.object().shape({
  name: yup.string().required(),
});

const validate = withValidation({
  schema,
  type: 'Yup',
  mode: 'query',
});

const handler = (req: NextApiRequest, res: NextApiResponse) => {
  res.status(200).json(req.query);
};

export default validate(handler);

Validate custom API endpoint with Zod

yarn add zod next-validations
import { NextApiRequest, NextApiResponse } from 'next';

import { z } from 'zod';
import { withValidation } from 'next-validations';

const schema = z.object({
  username: z.string().min(6),
});

const validate = withValidation({
  schema,
  type: 'Zod',
  mode: 'body',
});

const handler = (req: NextApiRequest, res: NextApiResponse) => {
  res.status(200).json(req.body);
};

export default validate(handler);

Validate custom API endpoint with fastest-validator

yarn add fastest-validator next-validations
import { NextApiRequest, NextApiResponse } from 'next';
import { withValidation } from 'next-validations';

const schema = {
  name: { type: 'string', min: 3, max: 255 },
  email: { type: 'email' },
  age: 'number',
};

const validate = withValidation({
  schema,
  type: 'FastestValidator',
  mode: 'body',
});

const handler = (req: NextApiRequest, res: NextApiResponse) => {
  res.status(200).json(req.body);
};

export default validate(handler);

Validate custom API endpoint with joi

yarn add joi next-connect next-validations
import { NextApiRequest, NextApiResponse } from 'next';

import Joi from 'joi';
import connect from 'next-connect';
import { withValidation } from 'next-validations';

const schema = Joi.object({
  dob: Joi.date().iso(),
  email: Joi.string()
    .email()
    .required(),
  name: Joi.string().required(),
});

const validate = withValidation({
  schema,
  type: 'Joi',
  mode: 'body',
});

const handler = (req: NextApiRequest, res: NextApiResponse) => {
  res.status(200).json(req.body);
};

export default connect().post(validate(), handler);

Run tests

yarn test

Author

๐Ÿ‘ค Huynh Duc Dung

Stargazers

Stargazers repo roster for @jellydn/next-validations

Show your support

Give a โญ๏ธ if this project helped you!

![support us](https://img.shields.io/badge/become-a patreon%20us-orange.svg?cacheSeconds=2592000)


This README was generated with โค๏ธ by readme-md-generator

next-validations's People

Contributors

jellydn avatar matteogauthier avatar renovate-bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.