cheke

1.0.5 • Public • Published

Cheke


npm version Build Status Coverage Status Maintainability Known Vulnerabilities

Express request validator with object's style response body and inspired by Laravel's Validator

How to install

  yarn add cheke
  or
  npm install --save cheke

How to use

Rules

  1. Array: array
  2. Boolean: boolean
  3. Date: date
  4. Email: email
  5. Integer: integer
  6. Maximum: max:maximumNumber
  7. Minimum: min:minimumNumber
  8. Number: number, number|min:200, number|max:200
  9. Regular Expression: regx:^[a-z]{6,}
  10. Required: required
  11. String: string, string|min:200, string|max:200
  12. UUID: uuid
  13. Object: object

Types of validation

  • query -> GET /validate-query?page=pageNumber
     app.get('/validate-query', cheke({
       query: {
         pageNumber: 'required|number|min:1',
       }
     }),(req, res) => {
       return res.send({ message: 'Validated' });
     });
    
     app.get('/validate-query', cheke({
       query: {
         pageNumber: { label: 'Page', type: 'required|number|min:1' },
       }
     }),(req, res) => {
       return res.send({ message: 'Validated' });
     });
    
  • params -> GET /validate-params/:id
     app.get('/validate-params/:id', cheke({
       params: {
         id: 'required|uuid'
       }
     }),(req, res) => {
       return res.send({ message: 'Validated' });
     });
    
     app.get('/validate-params/:id', cheke({
       params: {
         id: { label: 'ID', type: 'required|uuid' }
       }
     }),(req, res) => {
       return res.send({ message: 'Validated' });
     });
    
  • body -> POST /validate-body
     app.post('/validate-body', cheke({
       body: {
         username: 'required|string|min:6',
         password: 'required|string|min:6'
       }
     }),(req, res) => {
       return res.send({ message: 'Validated' });
     });
    
     app.post('/validate-body', cheke({
       body: {
         username: { label: 'Username', type: 'required|string|min:6' },
         password: { label: 'Password', type: 'required|string|min:6' }
       }
     }),(req, res) => {
       return res.send({ message: 'Validated' });
     });
    

Example GET /validate?page=4

  const express = require('express');
  const cheke = require('cheke);

  const app = express();
  const { PORT = 3000 } = process.env

  app.use(express.json())
  app.use(express.urlencoded({ extended: false }))

  app.get('/validate', cheke({
    query: {
      page: 'required|number'
    }
  }),(req, res) => {
    return res.send({ message: 'Validated' });
  });

  app.use((req, res, next) => {
    const err = new Error('Not Found');
    err.status = 404;
    next(err);
  });

  app.use((err, req, res) => {
    res.status(err.status || 500).json({
      errors: {
        message: err.message,
        error: err
      }
    });
  });

  app.listen(PORT, () => console.log(`Server listen on port ${PORT}...`));

Issues

Should it happen that the tool broke down on you please head to our Issue tracker

  1. Search if the issue is already discussed or explained.
  2. If no luck feel free to open a new issue and we will get back to you as soon as possible.

Acknowledgments

Package Sidebar

Install

npm i cheke

Weekly Downloads

2

Version

1.0.5

License

MIT

Unpacked Size

41 kB

Total Files

106

Last publish

Collaborators

  • oesukam