UNPKG

waigo

Version:

Node.js ES6 framework for reactive, data-driven apps and APIs (Koa, RethinkDB)

31 lines (22 loc) 688 B
"use strict"; const validator = require('validator'); const waigo = global.waigo, FieldValidationError = waigo.load('support/forms/field').FieldValidationError; /** * Validator which excutes a function from validator lib * * @throws Error If not an email address. */ module.exports = function(options) { let method = options.method, args = options.args; args = args || []; if (!validator[method]) { throw new FieldValidationError(`Invalid method: ${method}`); } return function*(context, field, value) { if (!validator[method].apply(validator, [value].concat(args))) { throw new FieldValidationError(`Validation failed: ${method}`); } } };