mix-classes
Version:
Seamlessly combine class inheritance with composition, guaranteed to work with any class
3 lines (2 loc) • 2.5 kB
JavaScript
function t(r,n){return(t=Object.setPrototypeOf||function(t,r){return t.__proto__=r,t})(r,n)}function r(n,e,o){return(r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct:function(r,n,e){var o=[null];o.push.apply(o,n);var u=new(Function.bind.apply(r,o));return e&&t(u,e.prototype),u}).apply(null,arguments)}var n=function(t,r){if(t&&t[e])return t[e].get(r)},e=Symbol("instanceThis"),o=Symbol("mixinClasses"),u=function(t){return"prototype"in t?t:t.Class},c=function(){for(var t=arguments.length,c=new Array(t),i=0;i<t;i++)c[i]=arguments[i];return function(t){var c,i,f=t.map(u),a=(i=function(){for(var t=this,n=arguments.length,o=new Array(n),u=0;u<n;u++)o[u]=arguments[u];this[c]=new WeakMap,f.forEach(function(n,u){var c,i,f=r(n,o[u]||[]),a=(c=t,i=f,new Proxy(c,{get:function(t,r){return(r in i?i:c)[r]},set:function(t,r,n){return(r in i?i:c)[r]=n,!0}}));t[e].set(n,a),Object.keys(f).forEach(function(r){Object.defineProperty(t,r,{configurable:!0,enumerable:!0,get:function(){return f[r]},set:function(t){return f[r]=t}})})})},c=e,i[o]=f,i);return f.forEach(function(t){var r=function(r){return function(){for(var e=arguments.length,o=new Array(e),u=0;u<e;u++)o[u]=arguments[u];return r.apply(n(this,t),o)}};!function n(e){var u=e.constructor[Symbol.hasInstance];Object.defineProperty(e.constructor,Symbol.hasInstance,{configurable:!0,value:function(r){if(e.isPrototypeOf(r))return!0;if(r&&r.constructor){if(this&&this!==e.constructor)return e.constructor.isPrototypeOf(r.constructor);if(function r(n){var e=n[o];if(!e)return!1;var u=e,c=Array.isArray(u),i=0;for(u=c?u:u[Symbol.iterator]();;){var f;if(c){if(i>=u.length)break;f=u[i++]}else{if((i=u.next()).done)break;f=i.value}if(f===t)return!0;if(r(f))return!0}return!1}(r.constructor))return!0;if(!this)return!1}return u(r)}}),Object.getOwnPropertyNames(e).forEach(function(t){if("constructor"!==t){var n=Object.getOwnPropertyDescriptor(e,t);n.get&&(n.get=r(n.get)),n.set&&(n.set=r(n.set)),"function"==typeof n.value&&(n.value=r(n.value)),a.prototype.hasOwnProperty(t)||Object.defineProperty(a.prototype,t,n)}});var c=Object.getPrototypeOf(e);c&&c!==Object.prototype&&n(c)}(t.prototype)}),a}(c)},i=function(t){return{Class:t}};export{i as Generic,c as Mix,n as getMixin};
//# sourceMappingURL=mix-classes.es.production.js.map