joi-fp

1.0.3 • Public • Published

joi-fp

Provides a few wrappers around Joi's validate(), attempt() and assert() functions with their arguments re-ordered for easier currying / partial application

travis standard npm

Installation:

npm i joi-fp

What problem does this solve?

When using functions like joi.validate(), you will almost always have values for schema and/or options before you have the value being validated. This little library re-orders the arguments of joi.validate(), joi.attempt() and joi.assert() allowing you to pass the data you have initially, well, initially :) This library also has a few versions of these functions with fixed arities to make currying and partial application easier.

Quick Example

const _ = require('lodash')
const joi = require('joi-fp')(require('joi'))
 
// example with currying
const validateInput = _.curry(joi.validateFp3)({
  name: joi.string().required()
})({allowUnknown: true});
 
validateInput({name: 'Max', color: 'blue'})
// { error: null, value: { name: 'Max', color: 'blue' } }
 
// example with partial application
const validateInputAgain = _.partial(joi.validateFp, {
  name: joi.string().required()
}, {allowUnknown: true});
 
validateInputAgain({name: 'Max', color: 'blue'}, (err, value) => {
  console.log(err, value) // null { name: 'Max', color: 'blue' }
})

Functions

// fixed arity for easy currying / partial application
validateFp2 (schema, value)
validateFp3 (schema, optionsOrValue, optionsOrCallback)
validateFp (schema, options, value, callback)
 
attemptFp2 (schema, value)
attemptFp (schema, message, value)
 
assertFp2 (schema, value)
assertFp (schema, message, value)

Package Sidebar

Install

npm i joi-fp

Weekly Downloads

1

Version

1.0.3

License

ISC

Last publish

Collaborators

  • max.nachlinger