A simple validation library for server and client side applications.
- Tiny footprint (2.27 kB / gzip: 931 B)
- Universal (can be used in server and client side)
- Out of the box basic validation rules
- Extensible (add your own rules)
npm install --save fullstack-validatorSimple Example
importValidatorfrom"fullstack-validator";constv=newValidator(/* pass custom rules here */);asyncfunctionuserCreate({ email, password }){// Inputs to validateconstinputs=[{data: {value: email},check: "email",message: "Please enter valid email."},{data: {value: password,length: 6},check: "lengthMin",message: "Password needs to be minimum 6 characters long"}];// Validatetry{v.validate(inputs);}catch(error){thrownewError(error.message);}// Create usertry{constuser=awaitUser.create({ email,password: hash(password)});if(user){return{data: user,message: "User created successfully."};}}catch(error){thrownewError(`An error occurred. ${error.message}`);}}Custom rules
importValidatorfrom"fullstack-validator";construles={isValidCreditCard: ({ value })=>{constregexp=/^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/;returnregexp.test(value);}};constv=newValidator(rules);asyncfunctionpaymentCreate({ creditCardNumber }){// Inputs to validateconstinputs=[{data: {value: creditCardNumber},check: "isValidCreditCard",message: "Please enter valid credit card."}];// Validatetry{v.validate(inputs);}catch(error){thrownewError(error.message);}// Create paymenttry{constpayment=awaitPayment.create({ creditCardNumber });if(payment){return{data: payment,message: "User created successfully."};}}catch(error){thrownewError(`An error occurred. ${error.message}`);}}- [YOUR NAME HERE] - Feel free to contribute to the codebase by resolving any open issues, refactoring, adding new features, writing test cases or any other way to make the project better and helpful to the community. Feel free to fork and send pull requests.
If you liked this project, you can donate to support it ❤️
Copyright (c) 2019 Atul Yadav http://github.com/atulmy
The MIT License (http://www.opensource.org/licenses/mit-license.php)
