test-mixer
Version:
Test helper to generate function opts object variations
27 lines (25 loc) • 6.52 kB
JavaScript
/**
* @name test-mixer
* @fileoverview Test helper to generate function opts object variations
* @version 4.1.17
* @author Roy Revelt, Codsen Ltd
* @license MIT
* {@link https://codsen.com/os/test-mixer/}
*/
;var testMixer=(()=>{var N=Object.create;var y=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames,A=Object.getOwnPropertySymbols,_=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable;var x=(t,e,s)=>e in t?y(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,g=(t,e)=>{for(var s in e||(e={}))v.call(e,s)&&x(t,s,e[s]);if(A)for(var s of A(e))I.call(e,s)&&x(t,s,e[s]);return t};var M=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),L=(t,e)=>{for(var s in e)y(t,s,{get:e[s],enumerable:!0})},k=(t,e,s,f)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of H(e))!v.call(t,c)&&c!==s&&y(t,c,{get:()=>e[c],enumerable:!(f=V(e,c))||f.enumerable});return t};var O=(t,e,s)=>(s=t!=null?N(_(t)):{},k(e||!t||!t.__esModule?y(s,"default",{value:t,enumerable:!0}):s,t)),W=t=>k(y({},"__esModule",{value:!0}),t);var j=M((G,D)=>{"use strict";D.exports=F;function d(t){return t instanceof Buffer?Buffer.from(t):new t.constructor(t.buffer.slice(),t.byteOffset,t.length)}function F(t){if(t=t||{},t.circles)return J(t);let e=new Map;if(e.set(Date,o=>new Date(o)),e.set(Map,(o,u)=>new Map(f(Array.from(o),u))),e.set(Set,(o,u)=>new Set(f(Array.from(o),u))),t.constructorHandlers)for(let o of t.constructorHandlers)e.set(o[0],o[1]);let s=null;return t.proto?p:c;function f(o,u){let r=Object.keys(o),n=new Array(r.length);for(let l=0;l<r.length;l++){let i=r[l],a=o[i];typeof a!="object"||a===null?n[i]=a:a.constructor!==Object&&(s=e.get(a.constructor))?n[i]=s(a,u):ArrayBuffer.isView(a)?n[i]=d(a):n[i]=u(a)}return n}function c(o){if(typeof o!="object"||o===null)return o;if(Array.isArray(o))return f(o,c);if(o.constructor!==Object&&(s=e.get(o.constructor)))return s(o,c);let u={};for(let r in o){if(Object.hasOwnProperty.call(o,r)===!1)continue;let n=o[r];typeof n!="object"||n===null?u[r]=n:n.constructor!==Object&&(s=e.get(n.constructor))?u[r]=s(n,c):ArrayBuffer.isView(n)?u[r]=d(n):u[r]=c(n)}return u}function p(o){if(typeof o!="object"||o===null)return o;if(Array.isArray(o))return f(o,p);if(o.constructor!==Object&&(s=e.get(o.constructor)))return s(o,p);let u={};for(let r in o){let n=o[r];typeof n!="object"||n===null?u[r]=n:n.constructor!==Object&&(s=e.get(n.constructor))?u[r]=s(n,p):ArrayBuffer.isView(n)?u[r]=d(n):u[r]=p(n)}return u}}function J(t){let e=[],s=[],f=new Map;if(f.set(Date,r=>new Date(r)),f.set(Map,(r,n)=>new Map(p(Array.from(r),n))),f.set(Set,(r,n)=>new Set(p(Array.from(r),n))),t.constructorHandlers)for(let r of t.constructorHandlers)f.set(r[0],r[1]);let c=null;return t.proto?u:o;function p(r,n){let l=Object.keys(r),i=new Array(l.length);for(let a=0;a<l.length;a++){let m=l[a],b=r[m];if(typeof b!="object"||b===null)i[m]=b;else if(b.constructor!==Object&&(c=f.get(b.constructor)))i[m]=c(b,n);else if(ArrayBuffer.isView(b))i[m]=d(b);else{let w=e.indexOf(b);w!==-1?i[m]=s[w]:i[m]=n(b)}}return i}function o(r){if(typeof r!="object"||r===null)return r;if(Array.isArray(r))return p(r,o);if(r.constructor!==Object&&(c=f.get(r.constructor)))return c(r,o);let n={};e.push(r),s.push(n);for(let l in r){if(Object.hasOwnProperty.call(r,l)===!1)continue;let i=r[l];if(typeof i!="object"||i===null)n[l]=i;else if(i.constructor!==Object&&(c=f.get(i.constructor)))n[l]=c(i,o);else if(ArrayBuffer.isView(i))n[l]=d(i);else{let a=e.indexOf(i);a!==-1?n[l]=s[a]:n[l]=o(i)}}return e.pop(),s.pop(),n}function u(r){if(typeof r!="object"||r===null)return r;if(Array.isArray(r))return p(r,u);if(r.constructor!==Object&&(c=f.get(r.constructor)))return c(r,u);let n={};e.push(r),s.push(n);for(let l in r){let i=r[l];if(typeof i!="object"||i===null)n[l]=i;else if(i.constructor!==Object&&(c=f.get(i.constructor)))n[l]=c(i,u);else if(ArrayBuffer.isView(i))n[l]=d(i);else{let a=e.indexOf(i);a!==-1?n[l]=s[a]:n[l]=u(i)}}return e.pop(),s.pop(),n}}});var Z={};L(Z,{mixer:()=>q,version:()=>U});var C=O(j(),1);var K=(0,C.default)();function h(t){if(t==null||typeof t!="object")return!1;let e=Object.getPrototypeOf(t);return e!==null&&e!==Object.prototype&&Object.getPrototypeOf(e)!==null?!1:!(Symbol.iterator in t)&&!(Symbol.toStringTag in t)}function E(t=[],e=[]){return!t||!e?[]:Array.from(new Set(Array.from(t).filter(s=>new Set(e).has(s))))}var $=O(j(),1);var S=(0,$.default)();function B(t,e={}){function s(l){let i=[];for(let a=0;a<1<<l;a++){let m=[];for(let b=0;b<l;b++)m.push(a&1<<b?1:0);i.push(m)}return i}if(!t)throw new Error("[THROW_ID_01] missing input object");if(!h(t))throw new Error("[THROW_ID_02] the first input object must be a plain object");if(e&&!h(e))throw new Error("[THROW_ID_03] the second override object must be a plain object");let f=S(t),c=S(e),p=Object.keys(f),o=[],u=[];h(c)&&Object.keys(c).length&&(u=E(Object.keys(c),Object.keys(f)),p=p.filter(l=>!u.includes(l)));let r=s(Object.keys(p).length),n;return r.forEach((l,i)=>{n={},p.forEach((a,m)=>{n[a]=r[i][m]===1}),o.push(n)}),h(c)&&Object.keys(c).length&&o.forEach(l=>{u.forEach(i=>{l[i]=c[i]})}),o}var T=O(j(),1);var R="4.1.17";var P=(0,T.default)(),U=R;function q(t={},e={}){if(t&&typeof t!="object")throw new Error("test-mixer: [THROW_ID_01] the first input arg is missing!");if(e&&typeof e!="object")throw new Error("test-mixer: [THROW_ID_02] the second input arg is missing!");let s;if(typeof t=="object"&&typeof e=="object"&&Object.keys(t).filter(u=>typeof t[u]=="boolean").some(u=>Object.keys(e).includes(u)?!1:(s=u,!0)))throw new Error(`test-mixer: [THROW_ID_03] the second input arg object should be defaults; it should be a superset of 1st input arg object. However, 1st input arg object contains key "${s}" which 2nd input arg object doesn't have.`);if(!Object.keys(e).length)return[];let f=P(t),c=P(e),p={};return Object.keys(e).forEach(u=>{typeof c[u]=="boolean"&&!Object.keys(t).includes(u)&&(p[u]=c[u])}),B(p).map(u=>g(g(g({},e),f),u))}return W(Z);})();
/**
* @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/}
*/
/**
* @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/}
*/