1.1.0 • Published 12 months ago

express-ts-validator v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

express-ts-validator 👋

☑ Very easy-to-use package

☑ Highly customizable validators

☑ Automatically generated types & interfaces

Installation

npm i express-ts-validator

For typescript users

Ensure you have "strictNullChecks": true in your TS config file. Otherwise, non-required parameters will not be marked as optional

Guides & examples 👀

https://axelmry.com/express-ts-validator

Usage 💻

import Validator from 'express-ts-validator'

const userEdit = new Validator({
    name: { type: 'string', notEmpty: true },
    email: { type: 'string', match: 'email', required: true },
    birthdate: { type: 'date', format: 'YYYY-MM-DD' },
    hobbies: { type: 'string', list: true },
    pets: {
        type: 'object', 
        list: true, 
        validator: {
            name: { type: 'string' },
            isNice: { type: 'bool' },
            age: { type: 'number', required: false }
        }
    } 
});

router.post('user/:id/edit', bodyParser.json(), userEdit.validate, (req: Request & { body: typeof userEdit.Schema }, res: Response) => {
    console.log(req.body.pets.map(p => `${p.name} is ${p.isNice ? 'nice' : 'naughty'}`))
    res.status(200).send('The entire request body is automatically typed !')
})

API

Here is a list of all the available parameters for the validation schema

For typeName DefaultDescription
AnyrequiredtrueIs the field required ? Will throw an error if not present
AnylistfalseIs it a list of values or a single value
String notEmptyfalseTrue throws an error if an empty string is given. Does not make the field required
StringmatchnoneThrows an error if the given value doesn't match the premade regular expression
StringregExpnoneThrows an error if the given value doesn't match the specified regular expression
StringcasenoneConverts the string to lower or upper case. Does not throw an error, use match / regExp for that.
Dateformat'YYYY-MM-DD'Throws an error if the given value doesn't match that format
Datetimeformat'YYYY-MM-DD HH:mm:ss'Throws an error if the given value doesn't match that format
NumberminnoneThrows an error if the given number is lower that min value
NumbermaxnoneThrows an error if the given number is greater that min value
NumberallowFloattrueFalse throws an error if a floating number if given
ObjectvalidatornoneThe validation schema of the object

TODO List

  • Support for list validation
  • Support for objects validation
  • Ability to match on regex for string types
  • Min and max values for numbers
  • Support for momentjs (choosing between dayjs and momentjs)
1.1.0

12 months ago

1.0.6

12 months ago

1.0.5

12 months ago

1.0.4

12 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago

0.0.6

12 months ago

0.0.5

12 months ago

0.0.4

12 months ago

0.0.3

12 months ago

0.0.2

12 months ago

0.0.1-1

12 months ago

0.0.1

12 months ago