UNPKG

object-boolean-combinations

Version:

Consumes a defaults object with booleans, generates all possible variations of it

19 lines (17 loc) 5.23 kB
/** * @name object-boolean-combinations * @fileoverview Consumes a defaults object with booleans, generates all possible variations of it * @version 6.1.8 * @author Roy Revelt, Codsen Ltd * @license MIT * {@link https://codsen.com/os/object-boolean-combinations/} */ "use strict";var objectBooleanCombinations=(()=>{var S=Object.create;var h=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var M=(t,n)=>()=>(n||t((n={exports:{}}).exports,n),n.exports),$=(t,n)=>{for(var i in n)h(t,i,{get:n[i],enumerable:!0})},A=(t,n,i,f)=>{if(n&&typeof n=="object"||typeof n=="function")for(let u of E(n))!T.call(t,u)&&u!==i&&h(t,u,{get:()=>n[u],enumerable:!(f=D(n,u))||f.enumerable});return t};var O=(t,n,i)=>(i=t!=null?S(R(t)):{},A(n||!t||!t.__esModule?h(i,"default",{value:t,enumerable:!0}):i,t)),L=t=>A(h({},"__esModule",{value:!0}),t);var g=M((Q,w)=>{"use strict";w.exports=P;function m(t){return t instanceof Buffer?Buffer.from(t):new t.constructor(t.buffer.slice(),t.byteOffset,t.length)}function P(t){if(t=t||{},t.circles)return F(t);let n=new Map;if(n.set(Date,s=>new Date(s)),n.set(Map,(s,a)=>new Map(f(Array.from(s),a))),n.set(Set,(s,a)=>new Set(f(Array.from(s),a))),t.constructorHandlers)for(let s of t.constructorHandlers)n.set(s[0],s[1]);let i=null;return t.proto?p:u;function f(s,a){let e=Object.keys(s),r=new Array(e.length);for(let c=0;c<e.length;c++){let o=e[c],l=s[o];typeof l!="object"||l===null?r[o]=l:l.constructor!==Object&&(i=n.get(l.constructor))?r[o]=i(l,a):ArrayBuffer.isView(l)?r[o]=m(l):r[o]=a(l)}return r}function u(s){if(typeof s!="object"||s===null)return s;if(Array.isArray(s))return f(s,u);if(s.constructor!==Object&&(i=n.get(s.constructor)))return i(s,u);let a={};for(let e in s){if(Object.hasOwnProperty.call(s,e)===!1)continue;let r=s[e];typeof r!="object"||r===null?a[e]=r:r.constructor!==Object&&(i=n.get(r.constructor))?a[e]=i(r,u):ArrayBuffer.isView(r)?a[e]=m(r):a[e]=u(r)}return a}function p(s){if(typeof s!="object"||s===null)return s;if(Array.isArray(s))return f(s,p);if(s.constructor!==Object&&(i=n.get(s.constructor)))return i(s,p);let a={};for(let e in s){let r=s[e];typeof r!="object"||r===null?a[e]=r:r.constructor!==Object&&(i=n.get(r.constructor))?a[e]=i(r,p):ArrayBuffer.isView(r)?a[e]=m(r):a[e]=p(r)}return a}}function F(t){let n=[],i=[],f=new Map;if(f.set(Date,e=>new Date(e)),f.set(Map,(e,r)=>new Map(p(Array.from(e),r))),f.set(Set,(e,r)=>new Set(p(Array.from(e),r))),t.constructorHandlers)for(let e of t.constructorHandlers)f.set(e[0],e[1]);let u=null;return t.proto?a:s;function p(e,r){let c=Object.keys(e),o=new Array(c.length);for(let l=0;l<c.length;l++){let d=c[l],b=e[d];if(typeof b!="object"||b===null)o[d]=b;else if(b.constructor!==Object&&(u=f.get(b.constructor)))o[d]=u(b,r);else if(ArrayBuffer.isView(b))o[d]=m(b);else{let j=n.indexOf(b);j!==-1?o[d]=i[j]:o[d]=r(b)}}return o}function s(e){if(typeof e!="object"||e===null)return e;if(Array.isArray(e))return p(e,s);if(e.constructor!==Object&&(u=f.get(e.constructor)))return u(e,s);let r={};n.push(e),i.push(r);for(let c in e){if(Object.hasOwnProperty.call(e,c)===!1)continue;let o=e[c];if(typeof o!="object"||o===null)r[c]=o;else if(o.constructor!==Object&&(u=f.get(o.constructor)))r[c]=u(o,s);else if(ArrayBuffer.isView(o))r[c]=m(o);else{let l=n.indexOf(o);l!==-1?r[c]=i[l]:r[c]=s(o)}}return n.pop(),i.pop(),r}function a(e){if(typeof e!="object"||e===null)return e;if(Array.isArray(e))return p(e,a);if(e.constructor!==Object&&(u=f.get(e.constructor)))return u(e,a);let r={};n.push(e),i.push(r);for(let c in e){let o=e[c];if(typeof o!="object"||o===null)r[c]=o;else if(o.constructor!==Object&&(u=f.get(o.constructor)))r[c]=u(o,a);else if(ArrayBuffer.isView(o))r[c]=m(o);else{let l=n.indexOf(o);l!==-1?r[c]=i[l]:r[c]=a(o)}}return n.pop(),i.pop(),r}}});var _={};$(_,{combinations:()=>I,version:()=>N});var x=O(g(),1);var W=(0,x.default)();function y(t){if(t==null||typeof t!="object")return!1;let n=Object.getPrototypeOf(t);return n!==null&&n!==Object.prototype&&Object.getPrototypeOf(n)!==null?!1:!(Symbol.iterator in t)&&!(Symbol.toStringTag in t)}function k(t=[],n=[]){return!t||!n?[]:Array.from(new Set(Array.from(t).filter(i=>new Set(n).has(i))))}var B=O(g(),1);var v="6.1.8";var C=(0,B.default)(),N=v;function I(t,n={}){function i(c){let o=[];for(let l=0;l<1<<c;l++){let d=[];for(let b=0;b<c;b++)d.push(l&1<<b?1:0);o.push(d)}return o}if(!t)throw new Error("[THROW_ID_01] missing input object");if(!y(t))throw new Error("[THROW_ID_02] the first input object must be a plain object");if(n&&!y(n))throw new Error("[THROW_ID_03] the second override object must be a plain object");let f=C(t),u=C(n),p=Object.keys(f),s=[],a=[];y(u)&&Object.keys(u).length&&(a=k(Object.keys(u),Object.keys(f)),p=p.filter(c=>!a.includes(c)));let e=i(Object.keys(p).length),r;return e.forEach((c,o)=>{r={},p.forEach((l,d)=>{r[l]=e[o][d]===1}),s.push(r)}),y(u)&&Object.keys(u).length&&s.forEach(c=>{a.forEach(o=>{c[o]=u[o]})}),s}return L(_);})(); /** * @name codsen-utils * @fileoverview Various utility functions * @version 1.6.7 * @author Roy Revelt, Codsen Ltd * @license MIT * {@link https://codsen.com/os/codsen-utils/} */