📝 Fluent Validations
Fluent Validations is a library that allows you to create validations for your entities and properties in a simple way.
📦 Installation
npm install @gnx-utilities/validators
pnpm add @gnx-utilities/validators
yarn add @gnx-utilities/validators
bun add @gnx-utilities/validators
📖 Usage
import { FluentValidation } from '@gnx-utilities/validators'
const email = 'test@test.test'
const validation = FluentValidation
.create()
.for({value: email })
.isRequired()
.isEmail()
console.log(validation.validate()) // true
console.log(validation.softValidation()) // { isValid: true, errors: [], totalErrors: 0 }
console.log(validation.getErrors()) // []
const wrongValidation = FluentValidation
.create()
.for({value: 'John Doe' })
.isEmail()
console.log(wrongValidation.validate()) // false
console.log(wrongValidation.softValidation()) // { isValid: false, errors: [ 'The value is not a valid email' ], totalErrors: 1 }
console.log(wrongValidation.getErrors()) // [ 'The value is not a valid email' ]
import { ModelValidator } from '@gnx-utilities/validators'
const user = {
name: 'John',
email: 'test@test.test',
age: 20
}
const validation = ModelValidator
.create()
.for({model: user })
.withProperty(({ name }) => name === 'John')
.withProperty(({ email }) => email === 'test@test.test')
.withProperty(({ age }) => age === 20)
console.log(validation.validate()) // true
console.log(validation.softValidation()) // { isValid: true, errors: [], totalErrors: 0 }
console.log(validation.getErrors()) // []
const wrongValidation = ModelValidator
.create()
.for({model: user })
.withProperty(({ name }) => name === 'Jane')
.withProperty(({ email }) => email === 'testing@test.com')
.withProperty(({ age }) => age === 50)
console.log(wrongValidation.validate()) // false
console.log(wrongValidation.softValidation()) // { isValid: false, errors: [ 'The property name is not valid', 'The property email is not valid', 'The property age is not valid' ], totalErrors: 3 }
console.log(wrongValidation.getErrors()) // [ 'The property name is not valid', 'The property email is not valid', 'The property age is not valid' ]