UNPKG

flexi-validate

Version:

Flexible JavaScript object validator

1 lines 4.56 kB
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?exports.flexiValidate=n():e.flexiValidate=n()}(this,function(){return function(e){function n(r){if(t[r])return t[r].exports;var i=t[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var t={};return n.m=e,n.c=t,n.p="",n(0)}([function(e,n){"use strict";function t(e,n){return e?n:e}function r(e,n){return e[n.key]=n.message,e}function i(e,n){return"undefined"!=typeof e&&"undefined"!=typeof e[n]?e[n]:void 0}function o(e,n){var t=n.split("."),r=t.length>1,o=void 0;return o=r?t.reduce(i,e):e[n]}function s(e){return"undefined"!=typeof e&&null!==e}function u(e,n){if("object"!==("undefined"==typeof e?"undefined":v(e)))throw new Error("Target object must be an object");if("object"!==("undefined"==typeof n?"undefined":v(n)))throw new Error("Validation object must be an object")}function a(e,n){if("string"!=typeof n)throw new Error("Validation input must be a property string");if("undefined"==typeof e[n])throw new Error("Validation input property must exist on validation object")}function c(e,n){u(e,n);var t=Object.keys(n),r=!1;return r=e instanceof Array?e.map(function(e){return c(e,n)}):t.reduce(function(t,r){if(!t)return t;var i=function(){var t=n[r],i=Object.keys(t);return{v:i.reduce(function(n,i){if(n){var s=t[i],u=o(e,r);return s.isValid instanceof Function?s.isValid(u):!0}return n},!0)}}();return"object"===("undefined"==typeof i?"undefined":v(i))?i.v:void 0},!0)}function f(e,n){try{u(e,n)}catch(r){return Promise.reject(r)}var i=Object.keys(n),s=void 0;if(e instanceof Array)s=Promise.all(e.map(function(e){return f(e,n)}));else if(i.length>0){var a=i.map(function(r){var i=n[r],s=Object.keys(i),u=s.map(function(n){var t=i[n],s=o(e,r);return t.isValid instanceof Function?Promise.resolve(t.isValid(s)):Promise.resolve(!0)});return Promise.all(u).then(function(e){return e.reduce(t)})},!0);s=Promise.all(a).then(function(e){return e.reduce(t)})}else s=Promise.resolve(!0);return s}function l(e,n,t){u(e,n),a(n,t);var i=Object.keys(n[t]),c=void 0;return c=e instanceof Array?e.map(function(e){return l(e,n,t)}):i.map(function(r){var i=n[t][r],s=o(e,t),u=i.message instanceof Function?i.message(s):i.message;return i.isValid(s)?void 0:{key:r,message:u}}).filter(s).reduce(r,{})}function d(e,n,t){try{u(e,n),a(n,t)}catch(i){return Promise.reject(i)}var c=Object.keys(n[t]),f=void 0;if(e instanceof Array)f=Promise.all(e.map(function(e){return d(e,n,t)}));else{var l=c.map(function(r){var i=n[t][r],s=o(e,t),u=i.message instanceof Function?i.message(s):i.message;return Promise.resolve(i.isValid(s)).then(function(e,n){return n?void 0:{key:e,message:u}}.bind(null,r))});f=Promise.all(l).then(function(e){return e.filter(s).reduce(r,{})})}return f}function m(e,n){u(e,n);var t=Object.keys(n),r=void 0;return r=e instanceof Array?e.map(function(e){return m(e,n)}):t.reduce(function(t,r){var i=n[r],s=Object.keys(i),u={};return s.forEach(function(n){var t=i[n],s=o(e,r),a=t.message instanceof Function?t.message(s):t.message;t.isValid(s)||(u[n]=a)}),Object.keys(u).length>0&&(t[r]=u),t},{})}function y(e,n){try{u(e,n)}catch(t){return Promise.reject(t)}var r=Object.keys(n),i=void 0;if(e instanceof Array)i=Promise.all(e.map(function(e){return y(e,n)}));else{var s=r.map(function(t){var r=n[t],i=Object.keys(r),s=i.map(function(n){var i=r[n],s=o(e,t),u=i.message instanceof Function?i.message(s):i.message;return Promise.resolve(i.isValid(s)).then(function(e){return e?void 0:{message:u,key:n}})});return Promise.all(s).then(function(e){var n=e.reduce(function(e,n){return e[n.key]=n.message,e},{});return n.inputKey=t,n})});i=Promise.all(s).then(function(e){return e.reduce(function(e,n){return e[n.inputKey]=n,delete n.inputKey,e},{})})}return i}function p(e,n){u(e,n);var t=Object.keys(n),r=void 0;return e instanceof Array?r=e.map(function(e){return p(e,n)}):(r={},t.forEach(function(n){var t=n.indexOf(".")>-1;if(t){var i=n.split(".")[0];r[i]=e[i]}else r[n]=e[n]})),r}var v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};Object.defineProperty(n,"__esModule",{value:!0}),n.isValid=c,n.isValidAsync=f,n.messages=l,n.messagesAsync=d,n.allMessages=m,n.allMessagesAsync=y,n.cleanAttributes=p,n["default"]={isValid:c,isValidAsync:f,messages:l,messagesAsync:d,allMessages:m,allMessagesAsync:y,cleanAttributes:p}}])});