next-validations_matteogauthier_fork
v0.2.2
Published
[![Version](https://img.shields.io/npm/v/next-validations.svg)](https://npmjs.org/package/next-validations) [![Downloads/week](https://img.shields.io/npm/dw/next-validations.svg)](https://npmjs.org/package/next-validations) ![Prerequisite](https://img.shi
Downloads
5
Maintainers
Readme
Welcome to next-validations 👋
NextJS API Validations
🏠 Homepage
✨ Demo
Prerequisites
- node >=12
- nextjs >= 9
Install
yarn add next-validations
Features
- [x] Support Yup validation
- [x] Support Fastest-Validator validation
- [x] Support Joi validation
- [x] Support Zod validation
- [ ] ...
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
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