express-dry

    1.0.7 • Public • Published

    Express-Dry

    A simple lightweight Express.js Validation Library (With predefined validators [WIP])

    How to install

    npm install express-dry
    

    or

    yarn add express-dry
    
    • Include in your project Eg. routes/auth.js
    const { Router } = require('express')
    const dry = require('express-dry')
    
    const router = Router()
    
    router.post('/login', dry.body({
      username: { type: String },
      password: { type: String },
      foo: { type: Boolean, required: false }
    }), async (req, res) => {})
    
    module.exports = router

    After this the .body will return a middleware with packed automatic validation inside and it will directly return error response to client with a {message: ''} in it

    • Same with params and query
    dry.params({ id: { type: Number } }, { allowExtraKeys: false })
    dry.query({ search: { type: String, required: false } }, { allowExtraKeys: true, statusCode: 200 })

    Complete Example

    router.post('/login', dry.body({
      name: { type: String },
      age: { type: Number, min: 18, max: 35 },
      password: { type: String, minLength: 8, maxLength: 20 },
      consent: { type: Boolean, required: false }
    }, { allowExtraKeys: false }), async (req, res) => {})

    Features

    • All Javascript supported primitives
    • optional payload validation with required: false
    • Will be adding more custom validations such as Email, MongoObjectId and many more :)

    Credits

    @uditkarode for drytypes

    License

    MIT ©Swapnil Soni

    Install

    npm i express-dry

    DownloadsWeekly Downloads

    7

    Version

    1.0.7

    License

    MIT

    Unpacked Size

    18.1 kB

    Total Files

    25

    Last publish

    Collaborators

    • swapnilsoni