UNPKG

flexi-validate

Version:

Flexible JavaScript object validator

1 lines 4.35 kB
var flexiValidate=function(e){function n(t){if(r[t])return r[t].exports;var i=r[t]={exports:{},id:t,loaded:!1};return e[t].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var r={};return n.m=e,n.c=r,n.p="",n(0)}([function(e,n){"use strict";function r(e,n){return e?n:e}function t(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 r=n.split("."),t=r.length>1,o=void 0;return o=t?r.reduce(i,e):e[n]}function s(e){return"undefined"!=typeof e&&null!==e}function u(e,n){if("object"!==("undefined"==typeof e?"undefined":p(e)))throw new Error("Target object must be an object");if("object"!==("undefined"==typeof n?"undefined":p(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 r=Object.keys(n),t=!1;return t=e instanceof Array?e.map(function(e){return c(e,n)}):r.reduce(function(r,t){if(!r)return r;var i=function(){var r=n[t],i=Object.keys(r);return{v:i.reduce(function(n,i){if(n){var s=r[i],u=o(e,t);return s.isValid instanceof Function?s.isValid(u):!0}return n},!0)}}();return"object"===("undefined"==typeof i?"undefined":p(i))?i.v:void 0},!0)}function f(e,n){try{u(e,n)}catch(t){return Promise.reject(t)}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(t){var i=n[t],s=Object.keys(i),u=s.map(function(n){var r=i[n],s=o(e,t);return r.isValid instanceof Function?Promise.resolve(r.isValid(s)):Promise.resolve(!0)});return Promise.all(u).then(function(e){return e.reduce(r)})},!0);s=Promise.all(a).then(function(e){return e.reduce(r)})}else s=Promise.resolve(!0);return s}function l(e,n,r){u(e,n),a(n,r);var i=Object.keys(n[r]),c=void 0;return c=e instanceof Array?e.map(function(e){return l(e,n,r)}):i.map(function(t){var i=n[r][t],s=o(e,r),u=i.message instanceof Function?i.message(s):i.message;return i.isValid(s)?void 0:{key:t,message:u}}).filter(s).reduce(t,{})}function d(e,n,r){try{u(e,n),a(n,r)}catch(i){return Promise.reject(i)}var c=Object.keys(n[r]),f=void 0;if(e instanceof Array)f=Promise.all(e.map(function(e){return d(e,n,r)}));else{var l=c.map(function(t){var i=n[r][t],s=o(e,r),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,t))});f=Promise.all(l).then(function(e){return e.filter(s).reduce(t,{})})}return f}function m(e,n){u(e,n);var r=Object.keys(n),t=void 0;return t=e instanceof Array?e.map(function(e){return m(e,n)}):r.reduce(function(r,t){var i=n[t],s=Object.keys(i),u={};return s.forEach(function(n){var r=i[n],s=o(e,t),a=r.message instanceof Function?r.message(s):r.message;r.isValid(s)||(u[n]=a)}),Object.keys(u).length>0&&(r[t]=u),r},{})}function y(e,n){try{u(e,n)}catch(r){return Promise.reject(r)}var t=Object.keys(n),i=void 0;if(e instanceof Array)i=Promise.all(e.map(function(e){return y(e,n)}));else{var s=t.map(function(r){var t=n[r],i=Object.keys(t),s=i.map(function(n){var i=t[n],s=o(e,r),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=r,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 v(e,n){u(e,n);var r=Object.keys(n),t=void 0;return e instanceof Array?t=e.map(function(e){return v(e,n)}):(t={},r.forEach(function(n){var r=n.indexOf(".")>-1;if(r){var i=n.split(".")[0];t[i]=e[i]}else t[n]=e[n]})),t}var p="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=v,n["default"]={isValid:c,isValidAsync:f,messages:l,messagesAsync:d,allMessages:m,allMessagesAsync:y,cleanAttributes:v}}]);