selective-option
Version:
A simple selective option resolver
3 lines (2 loc) • 4.36 kB
JavaScript
function r(r,n){(null==n||n>r.length)&&(n=r.length);for(var t=0,e=Array(n);t<n;t++)e[t]=r[t];return e}function n(r){if(Array.isArray(r))return r}function t(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}function e(n,t,e){if(t&&!Array.isArray(t)&&"number"==typeof t.length){var u=t.length;return r(t,void 0!==e&&e<u?e:u)}return n(t,e)}function u(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function i(r,t){return n(r)||function(r,n){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,u,i,o,a=[],f=!0,c=!1;try{if(i=(t=t.call(r)).next,0===n){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==n);f=!0);}catch(r){c=!0,u=r}finally{try{if(!f&&null!=t.return&&(o=t.return(),Object(o)!==o))return}finally{if(c)throw u}}return a}}(r,t)||f(r,t)||u()}function o(r){return n(r)||t(r)||f(r)||u()}function a(n){return function(n){if(Array.isArray(n))return r(n)}(n)||t(n)||f(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(n,t){if(n){if("string"==typeof n)return r(n,t);var e={}.toString.call(n).slice(8,-1);return"Object"===e&&n.constructor&&(e=n.constructor.name),"Map"===e||"Set"===e?Array.from(n):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?r(n,t):void 0}}function c(r,n){var t=r.map((function(r){return[r,n]}));return Object.fromEntries(t)}function l(r,n,t){var e=c(r,n);return Object.assign({},t,e)}var v=Array.isArray;function s(r,n){return typeof r===n}function y(r){return new Error('"'+r+'" is not a valid key')}function b(r){var n=s(r,"string")?'"'+r+'"':r;return new Error(n+" is not a valid value")}function d(r,n){return n(r)?[!0,r]:null==r?[!1,r]:void 0}function h(r,n){var t=d(r,n);if(!t)throw b(r);return t}function m(r,n,t){return function(u){if(s(u,"function"))return function(r,n){var t=r.map((function(r){return[r,n(r)]}));return Object.fromEntries(t)}(r,(function(r){var o=e(i,h(u(r),n),2),a=o[0],f=o[1];return a?f:t}))}}function g(r,n,t){if(n.includes(r))return[[r],!1];if(t){var e=t[r];if(e)return[e,!0]}}var p=["!","+","-"];function A(r,n,t){if(s(r,"string")){var u=g(r,n,t);if(u)return[e(i,u,1)[0],!0];var o=r.charAt(0);if(p.includes(o)){var a=g(r.slice(1),n,t);if(a)return[e(i,a,1)[0],"+"===o]}}}function j(r,n,t){var e=A(r,n,t);if(!e)throw y(r);return e}function w(r,n){return function(t){if(v(t)){if(0===t.length)return c(r,!1);var u=e(o,t),a=u[0],f=u.slice(1),l=e(i,j(a,r,n),2),s=l[0],y=l[1],b=c(r,!y),d=c(s,y),h=Object.assign({},b,d);return f.reduce((function(t,u){var o=e(i,j(u,r,n),2),a=c(o[0],o[1]);return Object.assign({},t,a)}),h)}}}function O(r,n){return Object.assign({},r,n)}function S(r,n,t,u,o){return function(f){if(f&&s(f,"object")&&!v(f)){var l=function(r,n,t,u,o,f){return Object.keys(r).reduce((function(t,l){var v=e(i,h(r[l],n),2),s=v[0],b=v[1];if(!s)return t;var d=e(i,t,3),m=d[0],p=d[1],A=d[2];if(l===u)return[b,p,A];var j=g(l,o,f);if(!j)throw y(l);var w=e(i,j,2),O=w[0],S=w[1],E=c(O,b);return S?[m,p,[].concat(e(a,A),[E])]:[m,[].concat(e(a,p),[E]),A]}),[t,[],[]])}(f,n,t,u,r,o),b=e(i,l,3),d=b[0],m=b[1],p=b[2];return m.reduce(O,p.reduce(O,c(r,d)))}}}function E(r,n){return function(t){var u=A(t,r,n);if(u){var o=e(i,u,2),a=o[0],f=o[1],l=c(r,!f),v=c(a,f);return Object.assign({},l,v)}}}function I(r,n,t){return function(u){var o=d(u,n);if(o){var a=e(i,o,2),f=a[0],l=a[1];return c(r,f?l:t)}}}function k(){for(var r=arguments.length,n=new Array(r),t=0;t<r;t++)n[t]=arguments[t];return function(r){for(var t=0,e=n;t<e.length;t++){var u=(0,e[t])(r);if(u)return u}throw b(r)}}function x(r,n,t,e,u){var i=function(r){var n=function(r){return!0===r||!1===r};return r?function(t){return r(t)||n(t)}:n}(n);return k(I(r,i,t),m(r,i,t),E(r,u),w(r,u),S(r,i,t,e,u))}function T(r,n,t,e,u){return k(I(r,n,t),m(r,n,t),S(r,n,t,e,u))}export{x as createBoolBasedResolver,m as createFunctionResolver,w as createKeyListResolver,E as createKeyResolver,S as createObjectResolver,k as createResolver,l as createResult,T as createValueBasedResolver,I as createValueResolver};
//# sourceMappingURL=selective.min.mjs.map