@jguyon/check is a library of simple composable functions that you can use
together to validate data.
npm install --save @jguyon/checkYou create a validation function by composing smaller validation functions created by the utilities provided by this library.
For example:
import*ascheckfrom"@jguyon/check";constcheckName=check.chain(check.string(),check.trim(),check.minLength(2),check.maxLength(24),);checkName(" Jérôme ");// => { isOk: true, value: "Jérôme" }checkName("J");// => { isOk: false, error: "is too short", ... }The validation functions that this library composes are simple functions that take the value to validate and return a valid or invalid result, so you can easily write your own:
import*ascheckfrom"@jguyon/check";constcheckLink=check.chain(check.string(),check.trim(),(value)=>value.startsWith("https://")
? check.ok(value)
: check.error(value,"is not a secure link"),);checkLink(" https://example.com ");// => { isOk: true, value: "https://example.com" }checkLink("http://example.com");// => { isOk: false, error: "is not a secure link", ... }Additional arguments passed to the validation function are passed to the child validation functions:
import*ascheckfrom"@jguyon/check";constcheckPasswordConfirmation=check.chain(check.string(),(value,password)=>value===password
? check.ok(value)
: check.error(value,"does not match password"),);checkPasswordConfirmation("password","password");// => { isOk: true, value: "password" }checkPasswordConfirmation("invalid","password");// => { isOk: false, error: "does not match password", ... }Here is the full documentation.