@webqit/observer
Advanced tools
Comparing version 2.1.17 to 2.1.18
@@ -1,2 +0,2 @@ | ||
(()=>{var je=Object.defineProperty;var xe=(e,t)=>{for(var n in t)je(e,n,{get:t[n],enumerable:!0})};var ge={};xe(ge,{apply:()=>pe,batch:()=>le,construct:()=>ae,defineProperties:()=>Qe,defineProperty:()=>me,deleteProperties:()=>Xe,deleteProperty:()=>X,get:()=>j,getOwnPropertyDescriptor:()=>se,getOwnPropertyDescriptors:()=>Je,getPrototypeOf:()=>ue,has:()=>Q,intercept:()=>Ge,isExtensible:()=>ce,observe:()=>Pe,ownKeys:()=>J,path:()=>He,preventExtensions:()=>he,reduce:()=>ye,set:()=>L,setPrototypeOf:()=>de});function x(e){return!Array.isArray(e)&&typeof e=="object"&&e}function D(e){return typeof e}function w(e){return Array.isArray(e)}function Z(e,t,n=null){return w(t)?e.filter(r=>n?t.filter(o=>n(r,o)).length:t.indexOf(r)!==-1):[]}function K(e,...t){if(globalThis.webqit||(globalThis.webqit={}),globalThis.webqit.refs||Object.defineProperty(globalThis.webqit,"refs",{value:new U}),!arguments.length)return globalThis.webqit.refs;let n=globalThis.webqit.refs.get(e);n||(n=new U,globalThis.webqit.refs.set(e,n));let r,o;for(;r=t.shift();)(o=n)&&!(n=n.get(r))&&(n=new U,o.set(r,n));return n}var U=class extends Map{constructor(...t){super(...t),this.observers=new Set}set(t,n){let r=super.set(t,n);return this.fire("set",t,n,t),r}delete(t){let n=super.delete(t);return this.fire("delete",t),n}has(t){return this.fire("has",t),super.has(t)}get(t){return this.fire("get",t),super.get(t)}keyNames(){return Array.from(super.keys())}observe(t,n,r){let o={type:t,key:n,callback:r};return this.observers.add(o),()=>this.observers.delete(o)}unobserve(t,n,r){if(Array.isArray(t)||Array.isArray(n))throw new Error('The "type" and "key" arguments can only be strings.');for(let o of this.observers)W([t,"*"],o.type)&&W([n,"*"],o.key)&&o.callback===r&&this.observers.delete(o)}fire(t,n,...r){for(let o of this.observers)W([t,"*"],o.type)&&W([n,"*"],o.key)&&o.callback(...r)}},W=(e,t)=>Array.isArray(t)?Z(e,t).length:e.includes(t);function R(e){return typeof e=="function"}function $(e){return R(e)&&/^class\s?/.test(Function.prototype.toString.call(e))}function ee(e){return e===null||e===""}function F(e){return arguments.length&&(e===void 0||typeof e>"u")}function b(e){return Array.isArray(e)||typeof e=="object"&&e||R(e)}function te(e){return ee(e)||F(e)||e===!1||e===0||b(e)&&!Object.keys(e).length}function P(e){return R(e)||e&&{}.toString.call(e)==="[object function]"}function H(e){return e instanceof String||typeof e=="string"&&e!==null}function re(e){return!H(e)&&!F(e.length)}function q(e,t=!0){return w(e)?e:!t&&x(e)?[e]:e!==!1&&e!==0&&te(e)?[]:re(e)?Array.prototype.slice.call(e):x(e)?Object.values(e):[e]}var N=class{constructor(t,n){this.registry=t,Object.assign(this,{...n,target:t.target}),this.params.signal&&this.params.signal.addEventListener("abort",()=>this.remove())}remove(){return this.removed=!0,this.registry.removeRegistration(this)}};var y=(...e)=>K("observer-api",...e),B=(e,t)=>e instanceof Promise?e.then(t):t(e);var M=class extends N{constructor(){super(...arguments),this.emit.currentRegistration=this,Object.defineProperty(this,"abortController",{value:new AbortController}),Object.defineProperty(this,"signal",{value:this.abortController.signal})}remove(){this.abortController.abort(),super.remove()}fire(t){if(this.emit.recursionTarget&&!["inject","force-async","force-sync"].includes(this.params.recursions))return;let n=t,r=this.filter;if(r!==1/0&&(r=q(r,!1))&&(n=t.filter(o=>r.includes(o.key))),this.params.diff&&(n=n.filter(o=>o.type!=="set"||o.value!==o.oldValue)),n.length){if(this.emit.recursionTarget&&this.params.recursions!=="force-sync"){this.emit.recursionTarget.push(...n);return}this.emit.recursionTarget=this.params.recursions==="inject"?n:[];let o=this.filter===1/0||Array.isArray(this.filter)?this.emit(n,this):this.emit(n[0],this);return B(o,f=>{let s=this.emit.recursionTarget;return delete this.emit.recursionTarget,this.params.recursions==="force-async"&&s.length?this.emit.currentRegistration.fire(s):f})}}};var z=class{constructor(t){this.target=t,this.entries=[]}addRegistration(t){return this.entries.push(t),t}removeRegistration(t){this.entries=this.entries.filter(n=>n!==t)}static _getInstance(t,n,r=!0,o=this.__namespace){if(!b(n))throw new Error(`Subject must be of type object; "${D(n)}" given!`);let f=this;return o&&y("namespaces").has(t+"-"+o)&&(f=y("namespaces").get(t+"-"+o),t+="-"+o),!y(n,"registry").has(t)&&r&&y(n,"registry").set(t,new f(n)),y(n,"registry").get(t)}static _namespace(t,n,r=null){if(t+="-"+n,arguments.length===2)return y("namespaces").get(t);if(!(r.prototype instanceof this))throw new Error(`The implementation of the namespace ${this.name}.${n} must be a subclass of ${this.name}.`);y("namespaces").set(t,r),r.__namespace=n}};var C=class extends z{static getInstance(t,n=!0,r=null){return super._getInstance("listeners",...arguments)}static namespace(t,n=null){return super._namespace("listeners",...arguments)}constructor(t){super(t),this.batches=[]}addRegistration(t,n,r){return super.addRegistration(new M(this,{filter:t,emit:n,params:r}))}emit(t){if(this.batches.length){this.batches[0].events.push(...t);return}this.entries.forEach(n=>n.fire(t))}batch(t){this.batches.unshift({entries:[...this.entries],events:[]});let n=t();return B(n,r=>{let o=this.batches.shift();return o.events.length&&o.entries.forEach(f=>f.fire(o.events)),r})}};var V=class extends N{exec(t,n,r){return this.running||!this.traps[t.type]?n(...Array.prototype.slice.call(arguments,2)):(this.running=!0,this.traps[t.type](t,r,(...o)=>(this.running=!1,n(...o))))}};var E=class extends z{static getInstance(t,n=!0,r=null){return super._getInstance("traps",...arguments)}static namespace(t,n=null){return super._namespace("traps",...arguments)}addRegistration(t){return super.addRegistration(new V(this,t))}emit(t,n=null){let r=this;return function o(f,...s){let c=r.entries[f];return c?c.exec(t,(...i)=>o(f+1,...i),...s):n?n(t,...s):s[0]}(0)}};var v=class{constructor(t,n){if(this.target=t,!n.type)throw new Error("Descriptor type must be given in definition!");Object.assign(this,n)}};var fe={};xe(fe,{accessorize:()=>ke,proxy:()=>Ke,unaccessorize:()=>We,unproxy:()=>G});function ke(e,t,n={}){e=ie(e);let r=y(e,"accessorizedProps");function o(i){let u,m=e;do u=Object.getOwnPropertyDescriptor(m,i);while(!u&&(m=Object.getPrototypeOf(m)));return u?{proto:m,descriptor:u}:{descriptor:{value:void 0,configurable:!0,enumerable:!0,writable:!0}}}function f(i){if(r.has(i+""))return!0;let u=o(i);u.getValue=function(){return this.descriptor.get?this.descriptor.get():this.descriptor.value},u.setValue=function(d){return this.dirty=!0,this.descriptor.set?this.descriptor.set(d)!==!1:(this.descriptor.value=d,!0)},u.intact=function(){let d=Object.getOwnPropertyDescriptor(e,i);return d?.get===a.get&&d?.set===a.set&&r.get(i+"")===this},u.restore=function(){return this.intact()?(this.proto&&this.proto!==e||!this.proto&&!this.dirty?delete e[i]:Object.defineProperty(e,i,this.descriptor),r.delete(i+""),!0):!1},r.set(i+"",u);let{enumerable:m=!0}=u.descriptor,a={enumerable:m,configurable:!0};("value"in u.descriptor||u.descriptor.set)&&(a.set=function(d){return L(this,i,d,n)}),("value"in u.descriptor||u.descriptor.get)&&(a.get=function(){return j(this,i,n)});try{return Object.defineProperty(e,i,a),!0}catch{return r.delete(i+""),!1}}let c=(Array.isArray(t)?t:t===void 0?Object.keys(e):[t]).map(f);return t===void 0||Array.isArray(t)?c:c[0]}function We(e,t,n={}){e=ie(e);let r=y(e,"accessorizedProps");function o(c){return r.has(c+"")?r.get(c+"").restore():!0}let s=(Array.isArray(t)?t:t===void 0?Object.keys(e):[t]).map(o);return t===void 0||Array.isArray(t)?s:s[0]}function Ke(e,t={}){e=ie(e);let n=new Proxy(e,{apply:(r,o,f)=>pe(r,o,f,t),construct:(r,o,f=null)=>ae(r,o,f,t),defineProperty:(r,o,f)=>me(r,o,f,t),deleteProperty:(r,o)=>X(r,o,t),get:(r,o,f=null)=>{let s=j(r,o,{...t,receiver:f});return t.proxyAutoBinding!==!1&&P(s)&&!$(s)?function(...c){let i=this||n;return le(i,()=>s.call(i,...c))}:s},getOwnPropertyDescriptor:(r,o)=>se(r,o,t),getPrototypeOf:r=>ue(r,t),has:(r,o)=>Q(r,o,t),isExtensible:r=>ce(r,t),ownKeys:r=>J(r,t),preventExtensions:r=>he(r,t),set:(r,o,f,s=null)=>L(r,o,f,{...t,receiver:s}),setPrototypeOf:(r,o)=>de(r,o,t)});return y(n).set(n,e),n}function G(e){return y(e).get(e)||e}function ie(e){if(!e||!b(e))throw new Error("Target must be of type object!");return G(e)}var k=class extends Array{};function He(...e){return new k(...e)}function ye(e,t,n,r=f=>f,o={}){if(t.length)return function f(s,c,i){let u=c[i.level],m=i.level===c.length-1;return s instanceof v&&s.type!=="get"?i={...i,probe:"always"}:i.probe!=="always"&&(i={...i,probe:!m}),n(s,u,(a,...d)=>{let h=l=>{l instanceof v&&(l.path=[l.key],s instanceof v&&(l.path=s.path.concat(l.key),Object.defineProperty(l,"context",{get:()=>s,configurable:!0})))},O=l=>{let p=S(l,!1);return B(p,g=>{l instanceof v?l.value=g:l=g;let _=d[0]||{};return f(l,c,{...i,..._,level:i.level+1})})};return Y(u)&&Array.isArray(a)?(a.forEach(h),m?r(a,...d):a.map(O)):(h(a),m?r(a,...d):O(a))},i)}(e,t.slice(0),{...o,level:0})}function Pe(e,t,n,r={}){if(e=S(e,!r.level),P(arguments[1])&&([,n,r={}]=arguments,t=1/0),!P(n))throw new Error(`Handler must be a function; "${D(n)}" given!`);if(t instanceof k)return ye(e,t,Pe,n,r);if(r={...r,descripted:!0},delete r.live,!b(e))return r.probe&&j(e,t,n,r);let o=Ae(e,t,n,r);return r.probe?j(e,t,o,r):o()}function Ge(e,t,n={}){return e=S(e),x(t)||([,,,n={}]=arguments,t={[arguments[1]]:arguments[2]}),E.getInstance(e,!0,n.namespace).addRegistration({traps:t,params:n})}function se(e,t,n=o=>o,r={}){return A(e,"getOwnPropertyDescriptor",{key:t},n,r)}function Je(e,t,n=o=>o,r={}){return A(e,"getOwnPropertyDescriptors",{key:t},n,r)}function ue(e,t=r=>r,n={}){return A(e,"getPrototypeOf",{},t,n)}function ce(e,t=r=>r,n={}){return A(e,"isExtensible",{},t,n)}function J(e,t=r=>r,n={}){return A(e,"ownKeys",{},t,n)}function Q(e,t,n=o=>o,r={}){return A(e,"has",{key:t},n,r)}function j(e,t,n=o=>o,r={}){let o;return e=S(e,!r.level),x(n)?[r,n]=[n,f=>f]:r.live&&(o=!0),t instanceof k?ye(e,t,j,n,r):Ye(e,t,f=>{let s=[...f];return function c(i,u,m){if(!u.length)return m(i);let a=u.shift();if(!["string","number","symbol"].includes(typeof a))throw new Error(`Property name/key ${a} invalid.`);function d(l,p=void 0){let g=I=>(l.value=I,c([...i,r.live||r.descripted?l:I],u,m));if(arguments.length>1)return g(p);let _=y(e,"accessorizedProps",!1),T=_&&_.get(l.key+"");return T&&T.intact()?g(T.getValue()):g(Reflect.get(e,l.key,...r.receiver?[r.receiver]:[]))}let h=new v(e,{type:"get",key:a,value:void 0,related:s});if(!b(e))return c([...i,r.live||r.descripted?h:void 0],u,m);let O=E.getInstance(e,!1,r.namespace);return O?O.emit(h,d):d(h)}([],f.slice(0),c=>{let i=Y(t)?c:c[0];return o&&b(e)?Ae(e,t,n,r)(i):n(i)})},r)}function le(e,t,n={}){return e=S(e),C.getInstance(e,!0,n.namespace).batch(t)}function L(e,t,n,r=s=>s,o={},f=!1){e=S(e);let s=[[t,n]];x(t)&&([,,r=i=>i,o={},f=!1]=arguments,s=Object.entries(t)),x(r)&&([f,o,r]=[typeof o=="boolean"?o:!1,r,i=>i]);let c=s.map(([i])=>i);return function i(u,m,a){if(!m.length)return a(u);let[d,h]=m.shift();function O(p,g=void 0){let _=Ee=>(p.status=Ee,i(u.concat(p),m,a));if(arguments.length>1)return _(p,g);let T=y(e,"accessorizedProps",!1),I=T&&T.get(p.key+"");return p.type==="defineProperty"?(I&&!I.restore()&&_(!1),Object.defineProperty(e,p.key,p.value),_(!0)):I&&I.intact()?_(I.setValue(p.value)):_(Reflect.set(e,p.key,p.value))}function l(p,g){if(o.diff&&h===g)return i(u,m,a);let _=new v(e,{type:f?"defineProperty":"set",key:d,value:h,isUpdate:p,oldValue:g,related:[...c],detail:o.detail}),T=E.getInstance(e,!1,o.namespace);return T?T.emit(_,O):O(_)}return Q(e,d,p=>p?j(e,d,g=>l(p,g),o):l(p),o)}([],s.slice(0),i=>{let u=C.getInstance(e,!1,o.namespace);return u&&u.emit(i),r(Y(t)?i.map(m=>m.status):i[0]?.status)})}function me(e,t,n,r=f=>f,o={}){return L(e,t,n,r,o,!0)}function Qe(e,t,n=o=>o,r={}){return L(e,t,n,r,!0)}function X(e,t,n=o=>o,r={}){e=S(e),x(n)&&([r,n]=[n,s=>s]);let o=q(t,!1),f=[...o];return function s(c,i,u){if(!i.length)return u(c);let m=i.shift();function a(h,O=void 0){let l=_=>(h.status=_,s(c.concat(h),i,u));if(arguments.length>1)return l(h,O);let p=y(e,"accessorizedProps",!1),g=p&&p.get(h.key+"");return g&&!g.restore()&&l(!1),l(Reflect.deleteProperty(e,h.key))}function d(h){let O=new v(e,{type:"deleteProperty",key:m,oldValue:h,related:[...f],detail:r.detail}),l=E.getInstance(e,!1,r.namespace);return l?l.emit(O,a):a(O)}return j(e,m,d,r)}([],o.slice(0),s=>{let c=C.getInstance(e,!1,r.namespace);return c&&c.emit(s),n(Y(t)?s.map(i=>i.status):s[0].status)})}function Xe(e,t,n=o=>o,r={}){return X(...arguments)}function ae(e,t,n=null,r=f=>f,o={}){return A(e,"construct",arguments.length>2?{argumentsList:t,newTarget:n}:{argumentsList:t},r,o)}function pe(e,t,n,r=f=>f,o={}){return A(e,"apply",{thisArgument:t,argumentsList:n},r,o)}function de(e,t,n=o=>o,r={}){return A(e,"setPrototypeOf",{proto:t},n,r)}function he(e,t=r=>r,n={}){return A(e,"preventExtensions",{},t,n)}function Ae(e,t,n,r={}){let o;r.signal||(o=new AbortController,r={...r,signal:o.signal});let f=C.getInstance(e,!0,r.namespace);return function s(c,i=null){i?.remove();let m={signal:f.addRegistration(t,s,r).signal};if(arguments.length){let a=n(c,m);if(arguments.length>1)return a}return o}}function A(e,t,n={},r=f=>f,o={}){e=S(e),x(r)&&([o,r]=[r,i=>i]);function f(i,u){return arguments.length>1?r(u):r(Reflect[t](e,...Object.values(n)))}let s=new v(e,{type:t,...n}),c=E.getInstance(e,!1,o.namespace);return c?c.emit(s,f):f(s)}function Y(e){return e===1/0||Array.isArray(e)}function S(e,t=!0){if((!e||!b(e))&&t)throw new Error(`Object must be of type object or array! "${D(e)}" given.`);return e instanceof v&&(e=e.value),e&&G(e)}function Ye(e,t,n,r={}){return t===1/0?r.level&&!b(e)?n([]):J(e,n,r):n(q(t,!1))}var Ze={...ge,...fe},Te=Ze;self.webqit||(self.webqit={});self.webqit.Observer=Te;})(); | ||
(()=>{var Re=Object.defineProperty;var _e=(t,e)=>{for(var n in e)Re(t,n,{get:e[n],enumerable:!0})};var xe={};_e(xe,{apply:()=>Q,batch:()=>me,construct:()=>he,defineProperties:()=>Qe,defineProperty:()=>pe,deleteProperties:()=>Xe,deleteProperty:()=>ee,get:()=>R,getOwnPropertyDescriptor:()=>ce,getOwnPropertyDescriptors:()=>Je,getPrototypeOf:()=>le,has:()=>Z,intercept:()=>Ge,isExtensible:()=>ae,observe:()=>Te,ownKeys:()=>Y,path:()=>Ke,preventExtensions:()=>ye,reduce:()=>ge,set:()=>B,setPrototypeOf:()=>de});function x(t){return!Array.isArray(t)&&typeof t=="object"&&t}function N(t){return typeof t}function A(t){return Array.isArray(t)}function re(t,e,n=null){return A(e)?t.filter(r=>n?e.filter(o=>n(r,o)).length:e.indexOf(r)!==-1):[]}function H(t,...e){if(globalThis.webqit||(globalThis.webqit={}),globalThis.webqit.refs||Object.defineProperty(globalThis.webqit,"refs",{value:new U}),!arguments.length)return globalThis.webqit.refs;let n=globalThis.webqit.refs.get(t);n||(n=new U,globalThis.webqit.refs.set(t,n));let r,o;for(;r=e.shift();)(o=n)&&!(n=n.get(r))&&(n=new U,o.set(r,n));return n}var U=class extends Map{constructor(...e){super(...e),this.observers=new Set}set(e,n){let r=super.set(e,n);return this.fire("set",e,n,e),r}delete(e){let n=super.delete(e);return this.fire("delete",e),n}has(e){return this.fire("has",e),super.has(e)}get(e){return this.fire("get",e),super.get(e)}keyNames(){return Array.from(super.keys())}observe(e,n,r){let o={type:e,key:n,callback:r};return this.observers.add(o),()=>this.observers.delete(o)}unobserve(e,n,r){if(Array.isArray(e)||Array.isArray(n))throw new Error('The "type" and "key" arguments can only be strings.');for(let o of this.observers)W([e,"*"],o.type)&&W([n,"*"],o.key)&&o.callback===r&&this.observers.delete(o)}fire(e,n,...r){for(let o of this.observers)W([e,"*"],o.type)&&W([n,"*"],o.key)&&o.callback(...r)}},W=(t,e)=>Array.isArray(e)?re(t,e).length:t.includes(e);function z(t){return typeof t=="function"}function ne(t){return t===null||t===""}function S(t){return arguments.length&&(t===void 0||typeof t>"u")}function _(t){return Array.isArray(t)||typeof t=="object"&&t||z(t)}function oe(t){return ne(t)||S(t)||t===!1||t===0||_(t)&&!Object.keys(t).length}function j(t){return z(t)||t&&{}.toString.call(t)==="[object function]"}function K(t){return t instanceof String||typeof t=="string"&&t!==null}function ie(t){return!K(t)&&!S(t.length)}function q(t,e=!0){return A(t)?t:!e&&x(t)?[t]:t!==!1&&t!==0&&oe(t)?[]:ie(t)?Array.prototype.slice.call(t):x(t)?Object.values(t):[t]}var h=(...t)=>H("observer-api",...t),L=(t,e)=>t instanceof Promise?t.then(e):e(t),G={};var F=class{constructor(e,n){this.registry=e,Object.assign(this,{...n,target:e.target}),this.params.signal&&this.params.signal.addEventListener("abort",()=>this.remove())}remove(){return this.removed=!0,this.registry.removeRegistration(this)}};var M=class extends F{constructor(){super(...arguments),this.emit.currentRegistration=this,Object.defineProperty(this,"abortController",{value:new AbortController}),Object.defineProperty(this,"signal",{value:this.abortController.signal}),G.setMaxListeners?.(0,this.signal)}remove(){this.abortController.abort(),super.remove()}fire(e){if(this.emit.recursionTarget&&!["inject","force-async","force-sync"].includes(this.params.recursions))return;let n=e,r=this.filter;if(r!==1/0&&(r=q(r,!1))&&(n=e.filter(o=>r.includes(o.key))),this.params.diff&&(n=n.filter(o=>o.type!=="set"||o.value!==o.oldValue)),n.length){if(this.emit.recursionTarget&&this.params.recursions!=="force-sync"){this.emit.recursionTarget.push(...n);return}this.emit.recursionTarget=this.params.recursions==="inject"?n:[];let o=this.filter===1/0||Array.isArray(this.filter)?this.emit(n,this):this.emit(n[0],this);return L(o,c=>{let u=this.emit.recursionTarget;return delete this.emit.recursionTarget,this.params.recursions==="force-async"&&u.length?this.emit.currentRegistration.fire(u):c})}}};var V=class{constructor(e){this.target=e,this.entries=[]}addRegistration(e){return this.entries.push(e),e}removeRegistration(e){this.entries=this.entries.filter(n=>n!==e)}static _getInstance(e,n,r=!0,o=this.__namespace){if(!_(n))throw new Error(`Subject must be of type object; "${N(n)}" given!`);let c=this;return o&&h("namespaces").has(e+"-"+o)&&(c=h("namespaces").get(e+"-"+o),e+="-"+o),!h(n,"registry").has(e)&&r&&h(n,"registry").set(e,new c(n)),h(n,"registry").get(e)}static _namespace(e,n,r=null){if(e+="-"+n,arguments.length===2)return h("namespaces").get(e);if(!(r.prototype instanceof this))throw new Error(`The implementation of the namespace ${this.name}.${n} must be a subclass of ${this.name}.`);h("namespaces").set(e,r),r.__namespace=n}};var b=class{constructor(e,n){if(this.target=e,!n.type)throw new Error("Descriptor type must be given in definition!");Object.assign(this,n)}};var C=class extends V{static getInstance(e,n=!0,r=null){return super._getInstance("listeners",...arguments)}static namespace(e,n=null){return super._namespace("listeners",...arguments)}constructor(e){super(e),this.batches=[]}addRegistration(e,n,r){return super.addRegistration(new M(this,{filter:e,emit:n,params:r}))}emit(e,n=!1){if(this.batches.length){this.batches[0].events.push(...e);return}let r;this.entries.forEach(o=>{if(n&&!o.params.propertyDescriptors){r=r||e.map(c=>{let{target:u,value:f,oldValue:i,type:s,...l}=c;return f=f.get?f.get():f.value,i=i?.get?i.get():i?.value,new b(u,{type:"set",value:f,oldValue:i,...l})}),o.fire(r);return}o.fire(e)})}batch(e){this.batches.unshift({entries:[...this.entries],events:[]});let n=e();return L(n,r=>{let o=this.batches.shift();return o.events.length&&o.entries.forEach(c=>c.fire(o.events)),r})}};var $=class extends F{exec(e,n,r){return this.running||!this.traps[e.type]?n(...Array.prototype.slice.call(arguments,2)):(this.running=!0,this.traps[e.type](e,r,(...o)=>(this.running=!1,n(...o))))}};var I=class extends V{static getInstance(e,n=!0,r=null){return super._getInstance("traps",...arguments)}static namespace(e,n=null){return super._namespace("traps",...arguments)}addRegistration(e){return super.addRegistration(new $(this,e))}emit(e,n=null){let r=this;return function o(c,...u){let f=r.entries[c];return f?f.exec(e,(...i)=>o(c+1,...i),...u):n?n(e,...u):u[0]}(0)}};var ue={};_e(ue,{accessorize:()=>We,proxy:()=>Ae,unaccessorize:()=>He,unproxy:()=>X});function We(t,e,n={}){t=J(t);let r=h(t,"accessorizedProps");function o(i){let s,l=t;do s=Object.getOwnPropertyDescriptor(l,i);while(!s&&(l=Object.getPrototypeOf(l)));return s?{proto:l,descriptor:s}:{descriptor:{value:void 0,configurable:!0,enumerable:!0,writable:!0}}}function c(i){if(r.has(i+""))return!0;let s=o(i);s.getValue=function(m=!1){return m?this.descriptor:this.descriptor.get?this.descriptor.get():this.descriptor.value},s.setValue=function(m,y=!1){if(this.dirty=!0,y){this.descriptor=m;return}return this.descriptor.set?this.descriptor.set(m)!==!1:(this.descriptor.value=m,!0)},s.intact=function(){let m=Object.getOwnPropertyDescriptor(t,i);return m?.get===a.get&&m?.set===a.set&&r.get(i+"")===this},s.restore=function(){return this.intact()?(this.proto&&this.proto!==t||!this.proto&&!this.dirty?delete t[i]:Object.defineProperty(t,i,this.descriptor),r.delete(i+""),!0):!1},r.set(i+"",s);let{enumerable:l=!0}=s.descriptor,a={enumerable:l,configurable:!0};("value"in s.descriptor||s.descriptor.set)&&(a.set=function(m){return B(this,i,m,n)}),("value"in s.descriptor||s.descriptor.get)&&(a.get=function(){return R(this,i,n)});try{return Object.defineProperty(t,i,a),!0}catch{return r.delete(i+""),!1}}let f=(Array.isArray(e)?e:e===void 0?Object.keys(t):[e]).map(c);return e===void 0||Array.isArray(e)?f:f[0]}function He(t,e,n={}){t=J(t);let r=h(t,"accessorizedProps");function o(f){return r.has(f+"")?r.get(f+"").restore():!0}let u=(Array.isArray(e)?e:e===void 0?Object.keys(t):[e]).map(o);return e===void 0||Array.isArray(e)?u:u[0]}function Ae(t,e={},n=void 0){let r=J(t);if(typeof e.membrane=="boolean")throw new Error("The params.membrane parameter cannot be of type boolean.");if(e.membrane&&h(r,"membraneRef").has(e.membrane))return h(r,"membraneRef").get(e.membrane);let o={apply(f,i,s){if(Array.isArray(i)){let l=J(i);return h(l).set("$length",l.length),me(l,()=>Q(f,i,s))}return Q(f,i,s)},construct:(f,i,s=null)=>he(f,i,s,e),defineProperty:(f,i,s)=>pe(f,i,s,e),deleteProperty:(f,i)=>ee(f,i,e),get:(f,i,s=null)=>{let l={...e,receiver:s};Array.isArray(f)&&i==="length"&&h(f).has("$length")&&(l.forceValue=h(f).get("$length"));let a=R(f,i,l);return Array.isArray(f)&&typeof a=="function"?Ae(a,{...e,membrane:s}):a},getOwnPropertyDescriptor:(f,i)=>ce(f,i,e),getPrototypeOf:f=>le(f,e),has:(f,i)=>Z(f,i,e),isExtensible:f=>ae(f,e),ownKeys:f=>Y(f,e),preventExtensions:f=>ye(f,e),set:(f,i,s,l=null)=>{let a={...e,receiver:l};return Array.isArray(f)&&i==="length"&&(a.forceOldValue=h(f).get("$length"),h(f).set("$length",s)),B(f,i,s,a)},setPrototypeOf:(f,i)=>de(f,i,e)},c=n?.(o)||o,u=new Proxy(r,c);return e.membrane&&h(r,"membraneRef").set(e.membrane,u),h(u).set(u,r),u}function X(t){return h(t).get(t)||t}function J(t){if(!t||!_(t))throw new Error("Target must be of type object!");return X(t)}var k=class extends Array{};function Ke(...t){return new k(...t)}function ge(t,e,n,r=c=>c,o={}){if(e.length)return function c(u,f,i){let s=f[i.level],l=i.level===f.length-1;return u instanceof b&&u.type!=="get"?i={...i,probe:"always"}:i.probe!=="always"&&(i={...i,probe:!l}),n(u,s,(a,...m)=>{let y=p=>{p instanceof b&&(p.path=[p.key],u instanceof b&&(p.path=u.path.concat(p.key),Object.defineProperty(p,"context",{get:()=>u,configurable:!0})))},O=p=>{let w=D(p,!1);return L(w,d=>{p instanceof b?p.value=d:p=d;let g=m[0]||{};return c(p,f,{...i,...g,level:i.level+1})})};return te(s)&&Array.isArray(a)?(a.forEach(y),l?r(a,...m):a.map(O)):(y(a),l?r(a,...m):O(a))},i)}(t,e.slice(0),{...o,level:0})}function Te(t,e,n,r={}){if(t=D(t,!r.level),j(arguments[1])&&([,n,r={}]=arguments,e=1/0),!j(n))throw new Error(`Handler must be a function; "${N(n)}" given!`);if(e instanceof k)return ge(t,e,Te,n,r);if(r={...r,descripted:!0},delete r.live,!_(t))return r.probe&&R(t,e,n,r);let o=Ee(t,e,n,r);return r.probe?R(t,e,o,r):o()}function Ge(t,e,n={}){return t=D(t),x(e)||([,,,n={}]=arguments,e={[arguments[1]]:arguments[2]}),I.getInstance(t,!0,n.namespace).addRegistration({traps:e,params:n})}function ce(t,e,n=o=>o,r={}){return T(t,"getOwnPropertyDescriptor",{key:e},n,r)}function Je(t,e,n=o=>o,r={}){return T(t,"getOwnPropertyDescriptors",{key:e},n,r)}function le(t,e=r=>r,n={}){return T(t,"getPrototypeOf",{},e,n)}function ae(t,e=r=>r,n={}){return T(t,"isExtensible",{},e,n)}function Y(t,e=r=>r,n={}){return T(t,"ownKeys",{},e,n)}function Z(t,e,n=o=>o,r={}){return T(t,"has",{key:e},n,r)}function R(t,e,n=o=>o,r={}){let o,c=D(t,!r.level);return x(n)?[r,n]=[n,u=>u]:r.live&&(o=!0),e instanceof k?ge(c,e,R,n,r):Ye(c,e,u=>{let f=[...u];return function i(s,l,a){if(!l.length)return a(s);let m=l.shift();if(!["string","number","symbol"].includes(typeof m))throw new Error(`Property name/key ${m} invalid.`);function y(w,d=void 0){let g=P=>(w.value=P,i([...s,r.live||r.descripted?w:P],l,a));if(arguments.length>1)return g(d);let v=h(c,"accessorizedProps",!1),E=v&&v.get(w.key+"");if(E&&E.intact())return g(E.getValue(r.propertyDescriptor));if(r.propertyDescriptor){let P=Object.getOwnPropertyDescriptor(c,w.key);return"forceValue"in r&&"value"in P&&(P.value=r.forceValue),g(P)}return"forceValue"in r?g(r.forceValue):g(Reflect.get(c,w.key,...r.receiver?[r.receiver]:[]))}let O=new b(c,{type:"get",key:m,value:void 0,related:f});if(!_(c))return i([...s,r.live||r.descripted?O:void 0],l,a);let p=I.getInstance(c,!1,r.namespace);return p?p.emit(O,y):y(O)}([],u.slice(0),i=>{let s=te(e)?i:i[0];return o&&_(c)?Ee(c,e,n,r)(s):n(s)})},r)}function me(t,e,n={}){return t=D(t),C.getInstance(t,!0,n.namespace).batch(e)}function B(t,e,n,r=u=>u,o={},c=!1){let u=D(t),f=[[e,n]];x(e)&&([,,r=s=>s,o={},c=!1]=arguments,f=Object.entries(e)),x(r)&&([c,o,r]=[typeof o=="boolean"?o:!1,r,s=>s]);let i=f.map(([s])=>s);return function s(l,a,m){if(!a.length)return m(l);let[y,O]=a.shift();function p(d,g=void 0){let v=Ie=>(d.status=Ie,s(l.concat(d),a,m));if(arguments.length>1)return v(d,g);let E=h(u,"accessorizedProps",!1),P=E&&E.get(d.key+"");return d.type==="defineProperty"?(P&&!P.restore()&&v(!1),Object.defineProperty(u,d.key,d.value),v(!0)):P&&P.intact()?v(P.setValue(d.value)):v(Reflect.set(u,d.key,d.value))}function w(d,g){if(o.diff&&O===g)return s(l,a,m);let v=new b(u,{type:c?"defineProperty":"set",key:y,value:O,isUpdate:d,oldValue:g,related:[...i],detail:o.detail}),E=I.getInstance(u,!1,o.namespace);return E?E.emit(v,p):p(v)}return Z(u,y,d=>{if(!d)return w(d);let g={...o,propertyDescriptor:c};return"forceOldValue"in o&&(g.forceValue=o.forceOldValue),R(u,y,v=>w(d,v),g)},o)}([],f.slice(0),s=>{let l=C.getInstance(u,!1,o.namespace);return l&&l.emit(s,c),r(te(e)?s.map(a=>a.status):s[0]?.status)})}function pe(t,e,n,r=c=>c,o={}){return B(t,e,n,r,o,!0)}function Qe(t,e,n=o=>o,r={}){return B(t,e,n,r,!0)}function ee(t,e,n=o=>o,r={}){t=D(t),x(n)&&([r,n]=[n,u=>u]);let o=q(e,!1),c=[...o];return function u(f,i,s){if(!i.length)return s(f);let l=i.shift();function a(y,O=void 0){let p=g=>(y.status=g,u(f.concat(y),i,s));if(arguments.length>1)return p(y,O);let w=h(t,"accessorizedProps",!1),d=w&&w.get(y.key+"");return d&&!d.restore()&&p(!1),p(Reflect.deleteProperty(t,y.key))}function m(y){let O=new b(t,{type:"deleteProperty",key:l,oldValue:y,related:[...c],detail:r.detail}),p=I.getInstance(t,!1,r.namespace);return p?p.emit(O,a):a(O)}return R(t,l,m,r)}([],o.slice(0),u=>{let f=C.getInstance(t,!1,r.namespace);return f&&f.emit(u),n(te(e)?u.map(i=>i.status):u[0].status)})}function Xe(t,e,n=o=>o,r={}){return ee(...arguments)}function he(t,e,n=null,r=c=>c,o={}){return T(t,"construct",arguments.length>2?{argumentsList:e,newTarget:n}:{argumentsList:e},r,o)}function Q(t,e,n,r=c=>c,o={}){return T(t,"apply",{thisArgument:e,argumentsList:n},r,o)}function de(t,e,n=o=>o,r={}){return T(t,"setPrototypeOf",{proto:e},n,r)}function ye(t,e=r=>r,n={}){return T(t,"preventExtensions",{},e,n)}function Ee(t,e,n,r={}){let o;r.signal||(o=new AbortController,r={...r,signal:o.signal},G.setMaxListeners?.(0,o.signal));let c=C.getInstance(t,!0,r.namespace);return function u(f,i=null){i?.remove();let l={signal:c.addRegistration(e,u,r).signal};if(arguments.length){let a=n(f,l);if(arguments.length>1)return a}return o}}function T(t,e,n={},r=c=>c,o={}){t=D(t),x(r)&&([o,r]=[r,i=>i]);function c(i,s){return arguments.length>1?r(s):r(Reflect[e](t,...Object.values(n)))}let u=new b(t,{type:e,...n}),f=I.getInstance(t,!1,o.namespace);return f?f.emit(u,c):c(u)}function te(t){return t===1/0||Array.isArray(t)}function D(t,e=!0){if((!t||!_(t))&&e)throw new Error(`Object must be of type object or array! "${N(t)}" given.`);return t instanceof b&&(t=t.value),t&&X(t)}function Ye(t,e,n,r={}){return e===1/0?r.level&&!_(t)?n([]):Y(t,n,r):n(q(e,!1))}var Ze={...xe,...ue},je=Ze;self.webqit||(self.webqit={});self.webqit.Observer=je;})(); | ||
//# sourceMappingURL=main.js.map |
@@ -15,3 +15,3 @@ { | ||
"homepage": "https://webqit.io/tooling/observer", | ||
"version": "2.1.17", | ||
"version": "2.1.18", | ||
"license": "MIT", | ||
@@ -18,0 +18,0 @@ "repository": { |
@@ -41,7 +41,9 @@ | ||
const currentDescriptorRecord = getDescriptorDeep( prop ); | ||
currentDescriptorRecord.getValue = function() { | ||
currentDescriptorRecord.getValue = function( propertyDescriptor = false ) { | ||
if ( propertyDescriptor ) return this.descriptor; | ||
return this.descriptor.get ? this.descriptor.get() : this.descriptor.value; | ||
}; | ||
currentDescriptorRecord.setValue = function( value ) { | ||
currentDescriptorRecord.setValue = function( value, propertyDescriptor = false ) { | ||
this.dirty = true; | ||
if ( propertyDescriptor ) { this.descriptor = value; return; } | ||
return this.descriptor.set ? this.descriptor.set( value ) !== false : ( this.descriptor.value = value, true ); | ||
@@ -124,9 +126,23 @@ }; | ||
* @param Object params | ||
* @param Function extendCallback | ||
* | ||
* @return Proxy | ||
*/ | ||
export function proxy( target, params = {} ) { | ||
target = resolveTarget( target ); | ||
const proxy = new Proxy( target, { | ||
apply: ( target, thisArgument, argumentsList ) => apply( target, thisArgument, argumentsList, params ), | ||
export function proxy( target, params = {}, extendCallback = undefined ) { | ||
// Resolve target | ||
const originalTarget = resolveTarget( target ); | ||
// Return same proxy instance? | ||
if ( typeof params.membrane === 'boolean' ) throw new Error( `The params.membrane parameter cannot be of type boolean.` ); | ||
if ( params.membrane && _( originalTarget, 'membraneRef' ).has( params.membrane ) ) { return _( originalTarget, 'membraneRef' ).get( params.membrane ); } | ||
const traps = { | ||
apply( target, thisArgument, argumentsList ) { | ||
if ( Array.isArray( thisArgument ) ) { | ||
// Manually manage the length property | ||
const originalThis = resolveTarget( thisArgument ); | ||
_( originalThis ).set( '$length', originalThis.length ); | ||
// And array methods have their operations batched | ||
return batch( originalThis, () => apply( target, thisArgument, argumentsList ) ); | ||
} | ||
return apply( target, thisArgument, argumentsList ); | ||
}, | ||
construct: ( target, argumentsList, newTarget = null ) => construct( target, argumentsList, newTarget, params ), | ||
@@ -136,10 +152,12 @@ defineProperty: ( target, propertyKey, attributes ) => defineProperty( target, propertyKey, attributes, params ), | ||
get: ( target, propertyKey, receiver = null ) => { | ||
const val = get( target, propertyKey, { ...params, receiver } ); | ||
if ( params.proxyAutoBinding !== false && _isFunction( val ) && !_isClass( val )) { | ||
return function( ...args ) { | ||
const _this = this || proxy; | ||
return batch( _this, () => val.call( _this, ...args ) ); | ||
} | ||
const $params = { ...params, receiver }; | ||
if ( Array.isArray( target ) && propertyKey === 'length' && _( target ).has( '$length' ) ) { | ||
$params.forceValue = _( target ).get( '$length' ); | ||
} | ||
return val; | ||
const returnValue = get( target, propertyKey, $params ); | ||
if ( Array.isArray( target ) && typeof returnValue === 'function' ) { | ||
// Return a proxy, but in terms of a membrane. | ||
return proxy( returnValue, { ...params, membrane: receiver/* the instance obj that will be the thisArgument at apply(). Much like function.bind() */ } ); | ||
} | ||
return returnValue; | ||
}, | ||
@@ -152,7 +170,19 @@ getOwnPropertyDescriptor: ( target, propertyKey ) => getOwnPropertyDescriptor( target, propertyKey, params ), | ||
preventExtensions: target => preventExtensions( target, params ), | ||
set: ( target, propertyKey, value, receiver = null ) => set( target, propertyKey, value, { ...params, receiver } ), | ||
set: ( target, propertyKey, value, receiver = null ) => { | ||
const $params = { ...params, receiver }; | ||
if ( Array.isArray( target ) && propertyKey === 'length' ) { | ||
$params.forceOldValue = _( target ).get( '$length' ); | ||
_( target ).set( '$length', value ); | ||
} | ||
return set( target, propertyKey, value, $params ); | ||
}, | ||
setPrototypeOf: ( target, prototype ) => setPrototypeOf( target, prototype, params ), | ||
}); | ||
_( proxy ).set( proxy, target ); | ||
return proxy; | ||
}; | ||
// Extend... | ||
const $traps = extendCallback?.( traps ) || traps; | ||
// Create proxy | ||
const $proxy = new Proxy( originalTarget, $traps ); | ||
if ( params.membrane ) { _( originalTarget, 'membraneRef' ).set( params.membrane, $proxy ); } | ||
_( $proxy ).set( $proxy, originalTarget ); | ||
return $proxy; | ||
} | ||
@@ -159,0 +189,0 @@ |
@@ -7,3 +7,3 @@ | ||
import Registration from './Registration.js'; | ||
import { _await } from '../util.js'; | ||
import { _await, other as otherUtil } from '../util.js'; | ||
@@ -26,2 +26,3 @@ /** | ||
Object.defineProperty( this, 'signal', { value: this.abortController.signal } ); | ||
otherUtil.setMaxListeners?.( 0, this.signal ); | ||
} | ||
@@ -28,0 +29,0 @@ |
@@ -8,2 +8,3 @@ | ||
import { _await } from '../util.js'; | ||
import Descriptor from './Descriptor.js'; | ||
@@ -48,3 +49,3 @@ /** | ||
*/ | ||
emit( events ) { | ||
emit( events, isPropertyDescriptors = false ) { | ||
if ( this.batches.length ) { | ||
@@ -54,3 +55,16 @@ this.batches[ 0 ].events.push( ...events ); | ||
} | ||
this.entries.forEach( listener => listener.fire( events ) ); | ||
let eventsWithValues; | ||
this.entries.forEach( listener => { | ||
if ( isPropertyDescriptors && !listener.params.propertyDescriptors ) { | ||
eventsWithValues = eventsWithValues || events.map( e => { | ||
let { target, value, oldValue, type, ...details } = e; | ||
value = value.get ? value.get() : value.value; | ||
oldValue = oldValue?.get ? oldValue.get() : oldValue?.value; | ||
return new Descriptor( target, { type: 'set', value, oldValue, ...details } ); | ||
} ); | ||
listener.fire( eventsWithValues ); | ||
return; | ||
} | ||
listener.fire( events ); | ||
} ); | ||
} | ||
@@ -57,0 +71,0 @@ |
@@ -7,2 +7,3 @@ | ||
import { _from as _arrFrom } from '@webqit/util/arr/index.js'; | ||
import { _, _await, other as otherUtil } from './util.js'; | ||
import ListenerRegistry from './core/ListenerRegistry.js'; | ||
@@ -12,3 +13,2 @@ import TrapsRegistry from './core/TrapsRegistry.js'; | ||
import { unproxy } from './actors.js'; | ||
import { _, _await } from './util.js'; | ||
@@ -240,8 +240,8 @@ /* ---------------SPECIAL APIs--------------- */ | ||
let isLive; | ||
target = resolveObj( target, !params.level ); | ||
const originalTarget = resolveObj( target, !params.level ); | ||
if ( _isObject( receiver ) ) { [ params, receiver ] = [ receiver, x => x ]; } | ||
else if ( params.live ) { isLive = true; } | ||
if ( prop instanceof Path ) return reduce( target, prop, get, receiver, params ); | ||
if ( prop instanceof Path ) return reduce( originalTarget, prop, get, receiver, params ); | ||
// --------------- | ||
return resolveProps( target, prop, props => { | ||
return resolveProps( originalTarget, prop, props => { | ||
const related = [ ...props ]; | ||
@@ -258,11 +258,17 @@ return ( function next( results, _props, _done ) { | ||
if ( arguments.length > 1 ) return _next( value ); | ||
const accessorizedProps = _( target, 'accessorizedProps', false ); | ||
const accessorizedProps = _( originalTarget, 'accessorizedProps', false ); | ||
const accessorization = accessorizedProps && accessorizedProps.get( descriptor.key + '' ); | ||
if ( accessorization && accessorization.intact() ) { | ||
return _next( accessorization.getValue() ); | ||
return _next( accessorization.getValue( params.propertyDescriptor ) ); | ||
} | ||
return _next( Reflect.get( target, descriptor.key, ...( params.receiver ? [ params.receiver ] : [] ) ) ); | ||
if ( params.propertyDescriptor ) { | ||
const desc = Object.getOwnPropertyDescriptor( originalTarget, descriptor.key ); | ||
if ( 'forceValue' in params && 'value' in desc ) { desc.value = params.forceValue; } | ||
return _next( desc ); | ||
} | ||
if ( 'forceValue' in params ) { return _next( params.forceValue ); } | ||
return _next( Reflect.get( originalTarget, descriptor.key, ...( params.receiver ? [ params.receiver ] : [] ) ) ); | ||
} | ||
// --------- | ||
const descriptor = new Descriptor( target, { | ||
const descriptor = new Descriptor( originalTarget, { | ||
type: 'get', | ||
@@ -273,4 +279,4 @@ key: prop, | ||
} ); | ||
if ( !_isTypeObject( target ) ) return next( [ ...results, params.live || params.descripted ? descriptor : undefined ], _props, _done ); | ||
const listenerRegistry = TrapsRegistry.getInstance( target, false, params.namespace ); | ||
if ( !_isTypeObject( originalTarget ) ) return next( [ ...results, params.live || params.descripted ? descriptor : undefined ], _props, _done ); | ||
const listenerRegistry = TrapsRegistry.getInstance( originalTarget, false, params.namespace ); | ||
if ( listenerRegistry ) { | ||
@@ -282,4 +288,4 @@ return listenerRegistry.emit( descriptor, defaultGet ); | ||
const result_s = isPropsList( prop/*original*/ ) ? results : results[ 0 ]; | ||
if ( isLive && _isTypeObject( target ) ) { | ||
const emit = bind( target, prop, receiver, params ); | ||
if ( isLive && _isTypeObject( originalTarget ) ) { | ||
const emit = bind( originalTarget, prop, receiver, params ); | ||
return emit( result_s ); | ||
@@ -322,3 +328,3 @@ } | ||
// --------------- | ||
target = resolveObj( target ); | ||
const originalTarget = resolveObj( target ); | ||
let entries = [ [ prop, value ] ]; | ||
@@ -339,7 +345,7 @@ if ( _isObject( prop ) ) { | ||
if ( arguments.length > 1 ) return _next( descriptor, status ); | ||
const accessorizedProps = _( target, 'accessorizedProps', false ); | ||
const accessorizedProps = _( originalTarget, 'accessorizedProps', false ); | ||
const accessorization = accessorizedProps && accessorizedProps.get( descriptor.key + '' ); | ||
if ( descriptor.type === 'defineProperty' ) { | ||
if ( accessorization && !accessorization.restore() ) _next( false ); | ||
Object.defineProperty( target, descriptor.key, descriptor.value ); | ||
Object.defineProperty( originalTarget, descriptor.key, descriptor.value ); | ||
return _next( true ); | ||
@@ -350,3 +356,3 @@ } | ||
} | ||
return _next( Reflect.set( target, descriptor.key, descriptor.value ) ); | ||
return _next( Reflect.set( originalTarget, descriptor.key, descriptor.value ) ); | ||
} | ||
@@ -356,3 +362,3 @@ // --------- | ||
if ( params.diff && value === oldValue ) return next( descriptors, entries, _done ); | ||
const descriptor = new Descriptor( target, { | ||
const descriptor = new Descriptor( originalTarget, { | ||
type: def ? 'defineProperty' : 'set', | ||
@@ -366,3 +372,3 @@ key: prop, | ||
} ); | ||
const listenerRegistry = TrapsRegistry.getInstance( target, false, params.namespace ); | ||
const listenerRegistry = TrapsRegistry.getInstance( originalTarget, false, params.namespace ); | ||
return listenerRegistry | ||
@@ -373,10 +379,12 @@ ? listenerRegistry.emit( descriptor, defaultSet ) | ||
// --------- | ||
return has( target, prop, exists => { | ||
return has( originalTarget, prop, exists => { | ||
if ( !exists ) return exec( exists ); | ||
return get( target, prop, oldValue => exec( exists, oldValue ), params ); | ||
const $params = { ...params, propertyDescriptor: def }; | ||
if ( 'forceOldValue' in params ) { $params.forceValue = params.forceOldValue; } | ||
return get( originalTarget, prop, oldValue => exec( exists, oldValue ), $params ); | ||
}, params ); | ||
// --------- | ||
} )( [], entries.slice( 0 ), descriptors => { | ||
const listenerRegistry = ListenerRegistry.getInstance( target, false, params.namespace ); | ||
if ( listenerRegistry ) listenerRegistry.emit( descriptors ); | ||
const listenerRegistry = ListenerRegistry.getInstance( originalTarget, false, params.namespace ); | ||
if ( listenerRegistry ) listenerRegistry.emit( descriptors, def ); | ||
return receiver( | ||
@@ -555,2 +563,3 @@ isPropsList( prop/*original*/ ) ? descriptors.map( opr => opr.status ) : descriptors[ 0 ]?.status | ||
params = { ...params, signal: controller.signal }; | ||
otherUtil.setMaxListeners?.( 0, controller.signal ); | ||
} | ||
@@ -557,0 +566,0 @@ const listenerRegistry = ListenerRegistry.getInstance( target, true, params.namespace ); |
@@ -10,1 +10,3 @@ | ||
export const _await = ( value, callback ) => value instanceof Promise ? value.then( callback ) : callback( value ); | ||
export const other = {}; |
Sorry, the diff of this file is not supported yet
168054
1532