@@ -0,0 +1,34 @@
'use strict'

module.exports = function OptionsValidator (params) {
if (!validateParams(params)) {
throw new Error('-- OptionsValidator: required options missing')
}

if (!(this instanceof OptionsValidator)) {
return new OptionsValidator(params)
}

const requiredOptions = params.required

this.getRequiredOptions = function () {
return requiredOptions
}

this.validate = function (parameters) {
const errors = []
requiredOptions.forEach(function (requiredOptionName) {
if (typeof parameters[requiredOptionName] === 'undefined') {
errors.push(requiredOptionName)
}
})
return errors
}

function validateParams (params) {
if (!params) {
return false
}
return typeof params.required !== 'undefined' && params.required instanceof Array
}
}