forked from joebain/args.js
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Args.min.js
1 lines (1 loc) · 2.95 KB
/
Args.min.js
1
var Args=function(){"use strict";var e=function(e){var n={};n.defValue=void 0,n.typeValue=void 0;for(var t in e)e.hasOwnProperty(t)&&("_default"===t?n.defValue=e[t]:"_type"===t?n.typeValue=e[t]:n.sname=t);return n.sarg=e[n.sname],n},n=function(e,n,t){return 0!==(n&a.STRING)&&"string"==typeof e?!0:0!==(n&a.FUNCTION)&&"function"==typeof e?!0:0!==(n&a.INT)&&"number"==typeof e&&Math.floor(e)===e?!0:0!==(n&a.FLOAT)&&"number"==typeof e?!0:0!==(n&a.ARRAY)&&e instanceof Array?!0:0!==(n&a.OBJECT)&&"object"==typeof e&&(void 0===t||e instanceof t)?!0:0!==(n&a.ARRAY_BUFFER)&&e.toString().match(/ArrayBuffer/)?!0:0!==(n&a.DATE)&&e instanceof Date?!0:0!==(n&a.BOOL)&&"boolean"==typeof e?!0:0!==(n&a.DOM_EL)&&(e instanceof HTMLElement||void 0!==window.$&&e instanceof window.$)?!0:!1},t=function(e){return 0!=(e&(a.STRING|a.FUNCTION|a.INT|a.FLOAT|a.OBJECT|a.ARRAY_BUFFER|a.DATE|a.BOOL|a.DOM_EL|a.ARRAY))},r=function(e,n){return 0!==(e&a.STRING)?"String":0!==(e&a.FUNCTION)?"Function":0!==(e&a.INT)?"Int":0!==(e&a.FLOAT)?"Float":0!==(e&a.ARRAY)?"Array":0!==(e&a.OBJECT)?void 0!==n?"Object ("+n.toString()+")":"Object":0!==(e&a.ARRAY_BUFFER)?"Arry Buffer":0!==(e&a.DATE)?"Date":0!==(e&a.BOOL)?"Bool":0!==(e&a.DOM_EL)?"DOM Element":"unknown"},o=function(t,r,o){for(var a=!1,u=0;u<r.length;u++)a&=function(e){var r=!1;for(var a in t){var u=t[a];if(a===e.sname&&n(u,e.sarg,e.type)){o[a]=u,r=!0;break}}return r}(e(r[u]));return a},a=function(u,i){if(void 0===u)throw new Error("The scheme has not been passed.");if(void 0===i)throw new Error("The arguments have not been passed.");var f,l,s={},d=void 0;for(f=0,l=0;(f<i.length,l<u.length)&&(f=function(o,f){var l=i[o];if(u[f]instanceof Array){if(null===l||void 0===l)return d="Argument "+o+" is null or undefined but it must be not null.",o;for(var v=u[f],A=void 0,O=0;O<v.length;O++){var p=e(v[O]);n(l,p.sarg,p.typeValue)&&(A=p.sname)}if(void 0===A){d="Argument "+o+" should be one of: ";for(var O=0;O<v.length;O++){var p=e(v[O]);d+=r(p.sarg,p.typeValue)+", "}return d+="but it was type "+typeof l+" with value "+l+".",o}return s[A]=l,o+1}var p=e(u[f]);if(0!==(p.sarg&a.NotNull))return null===l||void 0===l?(d="Argument "+o+" ("+p.sname+") is null or undefined but it must be not null.",o):n(l,p.sarg,p.typeValue)?(s[p.sname]=l,o+1):(d=t(p.sarg)?"Argument "+o+" ("+p.sname+") should be type "+r(p.sarg,p.typeValue)+", but it was type "+typeof l+" with value "+l+".":"Argument "+o+" ("+p.sname+") has no valid type specified.",o);if(0!==(p.sarg&a.Optional)){if(null===l||void 0===l)return s[p.sname]=void 0!==p.defValue?p.defValue:l,o+1;if(n(l,p.sarg,p.typeValue))return s[p.sname]=l,o+1;if(void 0!==p.defValue)return s[p.sname]=p.defValue,o}return o}(f,l),!d);l++);var v=f<i.length&&"object"==typeof i[f];if(v)var A=i[f],O=o(A,u,s);if(d&&(!v||!O))throw new Error(d);return s};return a.STRING=1,a.FUNCTION=2,a.INT=4,a.FLOAT=8,a.ARRAY_BUFFER=16,a.OBJECT=32,a.DATE=64,a.BOOL=128,a.DOM_EL=256,a.ARRAY=512,a.Optional=1024,a.NotNull=a.Required=2048,a}();try{module.exports=Args}catch(e){}