@graphql-box/worker-client 3.6.2 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";import e from"@babel/runtime/helpers/objectWithoutProperties";import t from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/classCallCheck";import n from"@babel/runtime/helpers/createClass";import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/applyDecoratedDescriptor";import a from"lodash/isPlainObject";import c from"lodash/castArray";import i from"@babel/runtime/regenerator";import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.map.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.promise.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import{MUTATION as u,QUERY as p,SUBSCRIPTION as h}from"@graphql-box/core";import{hashRequest as l,EventAsyncIterator as f,deserializeErrors as b,rehydrateCacheMetadata as m,dehydrateCacheMetadata as d,serializeErrors as g}from"@graphql-box/helpers";import v from"eventemitter3";import{v1 as y}from"uuid";import{handleMessage as x}from"@cachemap/core-worker";import{forAwaitEach as w,isAsyncIterable as _}from"iterall";var j,k,q,O="request_executed";function M(){return function(r,n,o){var s,a=o.value;a&&(o.value=(s=t(i.mark((function r(){var n,o,s,c=this,u=arguments;return i.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=u.length,o=new Array(n),s=0;s<n;s++)o[s]=u[s];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(i.mark((function t(r){var n,s,u,p,h,l,f;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=o[2],s=n.debugManager,u=e(n,["debugManager"]),s){t.next=8;break}return t.t0=r,t.next=5,a.apply(c,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=s.now(),s.emit("request_executed",{context:u,options:o[1],request:o[0],stats:{startTime:p}}),t.next=12,a.apply(c,o);case 12:h=t.sent,l=s.now(),f=l-p,r(h),s.emit("request_resolved",{context:u,options:o[1],request:o[0],result:h,stats:{duration:f,endTime:l,startTime:p}});case 17:case"end":return t.stop()}}),t)})));return function(e){return r.apply(this,arguments)}}()));case 5:return r.prev=5,r.t0=r.catch(1),r.abrupt("return",Promise.reject(r.t0));case 8:case"end":return r.stop()}}),r,null,[[1,5]])}))),function(){return s.apply(this,arguments)}))}}function D(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?D(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):D(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var E=(j=M(),k=M(),s((q=function(){function s(n){var c,u=this;r(this,s),o(this,"_cache",void 0),o(this,"_debugManager",void 0),o(this,"_eventEmitter",void 0),o(this,"_pending",new Map),o(this,"_worker",void 0),o(this,"_onMessage",(c=t(i.mark((function t(r){var n,o,s,c,p,h,l,f,d;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,a(n)){t.next=3;break}return t.abrupt("return");case 3:if(s=(o=n).context,c=o.method,p=o.result,"graphqlBox"===o.type&&a(p)){t.next=6;break}return t.abrupt("return");case 6:if(h=p._cacheMetadata,l=e(p,["_cacheMetadata"]),f=b(P(P({},l),{},{requestID:s.boxID})),h&&(f._cacheMetadata=m(h)),"request"!==c){t.next=16;break}if(d=u._pending.get(s.boxID)){t.next=13;break}return t.abrupt("return");case 13:d.resolve(f),t.next=17;break;case 16:("subscribe"===c||s.hasDeferOrStream)&&u._eventEmitter.emit(s.boxID,f);case 17:case"end":return t.stop()}}),t)}))),function(e){return c.apply(this,arguments)}));var p=[];if(a(n)||p.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),n.cache||p.push(new TypeError("@graphql-box/client expected options.cache.")),n.worker||p.push(new TypeError("@graphql-box/client expected options.worker.")),p.length)throw p;this._cache=n.cache,this._debugManager=n.debugManager?n.debugManager():null,this._eventEmitter=new v,this._worker=n.worker,this._addEventListener()}var d,g,x,w,_,j;return n(s,[{key:"cache",get:function(){return this._cache}},{key:"mutate",value:(j=t(i.mark((function e(t){var r,n,o=arguments;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:{},n=o.length>2&&void 0!==o[2]?o[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(u,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return j.apply(this,arguments)})},{key:"query",value:(_=t(i.mark((function e(t){var r,n,o=arguments;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:{},n=o.length>2&&void 0!==o[2]?o[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(p,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return _.apply(this,arguments)})},{key:"request",value:(w=t(i.mark((function e(t){var r,n,o=arguments;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:{},n=o.length>2&&void 0!==o[2]?o[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(p,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return w.apply(this,arguments)})},{key:"subscribe",value:(x=t(i.mark((function e(t){var r,n=arguments;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.abrupt("return",this._subscribe(t,r,this._getRequestContext(h,t)));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return x.apply(this,arguments)})},{key:"_addEventListener",value:function(){this._worker.addEventListener("message",this._onMessage)}},{key:"_getRequestContext",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return P({boxID:y(),debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t,whitelistHash:l(t)},r)}},{key:"_request",value:(g=t(i.mark((function e(t,r,n){var o,a=this;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n.hasDeferOrStream){e.next=3;break}return e.abrupt("return",new Promise((function(e){a._worker.postMessage({context:s._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),a._pending.set(n.boxID,{resolve:e})})));case 3:return this._worker.postMessage({context:s._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o=new f(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",{errors:c(e.t0)});case 11:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e,t,r){return g.apply(this,arguments)})},{key:"_subscribe",value:(d=t(i.mark((function e(t,r,n){var o;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:s._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new f(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",{errors:c(e.t0)});case 9:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t,r){return d.apply(this,arguments)})}],[{key:"_getMessageContext",value:function(e){var t=e.boxID,r=e.hasDeferOrStream;return{boxID:t,hasDeferOrStream:void 0!==r&&r}}}]),s}()).prototype,"_request",[j],Object.getOwnPropertyDescriptor(q.prototype,"_request"),q.prototype),s(q.prototype,"_subscribe",[k],Object.getOwnPropertyDescriptor(q.prototype,"_subscribe"),q.prototype),q);function C(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function I(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?C(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):C(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var B=self,S=B.addEventListener,T=B.postMessage;function R(){return(R=t(i.mark((function t(r,n,o,s,a){var c,u,p,h,l;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.request(r,o,s);case 2:if(c=t.sent,_(c)){t.next=9;break}return p=(u=c)._cacheMetadata,h=e(u,["_cacheMetadata"]),l=I({},h),p&&(l._cacheMetadata=d(p)),T({context:s,method:n,result:g(l),type:"graphqlBox"}),t.abrupt("return");case 9:w(c,(function(t){var r=t._cacheMetadata,o=I({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=d(r)),T({context:s,method:n,result:g(o),type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function L(){return(L=t(i.mark((function t(r,n,o,s,a){var c;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.subscribe(r,o,s);case 2:if(c=t.sent,_(c)){t.next=6;break}return T({context:s,method:n,result:g(c),type:"graphqlBox"}),t.abrupt("return");case 6:w(c,(function(t){var r=t._cacheMetadata,o=I({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=d(r)),T({context:s,method:n,result:g(o),type:"graphqlBox"})}));case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function A(e,t){var r=e,n=r.context,o=r.method,s=r.options,a=r.request;"request"===o?function(e,t,r,n,o){R.apply(this,arguments)}(a,o,s,n,t):"subscribe"===o&&function(e,t,r,n,o){L.apply(this,arguments)}(a,o,s,n,t)}function F(e){return G.apply(this,arguments)}function G(){return(G=t(i.mark((function e(t){var r,n;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(a(t)){var n=t.type;"graphqlBox"===n?A(t,r):"cachemap"===n&&r.cache&&x(t,r.cache)}},r=t.client,S("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default E;export{O as REQUEST_EXECUTED,F as registerWorker};
1
+ import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";import e from"@babel/runtime/helpers/objectWithoutProperties";import t from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/classCallCheck";import n from"@babel/runtime/helpers/createClass";import s from"@babel/runtime/helpers/defineProperty";import o from"@babel/runtime/helpers/applyDecoratedDescriptor";import a from"lodash/isPlainObject";import c from"lodash/castArray";import u from"@babel/runtime/regenerator";import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.map.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.promise.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import{REQUEST_RESOLVED as i,REQUEST_EXECUTED as p,MUTATION as h,QUERY as l,SUBSCRIPTION as f}from"@graphql-box/core";import{hashRequest as m,EventAsyncIterator as b,deserializeErrors as d,rehydrateCacheMetadata as g,dehydrateCacheMetadata as v,serializeErrors as y}from"@graphql-box/helpers";import w from"eventemitter3";import{v1 as x}from"uuid";import{handleMessage as j}from"@cachemap/core-worker";import{forAwaitEach as _,isAsyncIterable as q}from"iterall";var k,O,M;function D(){return function(r,n,s){var o,a=s.value;a&&(s.value=(o=t(u.mark((function r(){var n,s,o,c=this,h=arguments;return u.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=h.length,s=new Array(n),o=0;o<n;o++)s[o]=h[o];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(u.mark((function t(r){var n,o,h,l,f,m,b,d;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=s[2],o=n.debugManager,h=n.requestID,l=e(n,["debugManager","requestID"]),o){t.next=8;break}return t.t0=r,t.next=5,a.apply(c,s);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return f=o.now(),o.emit(p,{context:l,options:s[1],request:s[0],requestID:h,stats:{startTime:f}}),t.next=12,a.apply(c,s);case 12:m=t.sent,b=o.now(),d=b-f,r(m),o.emit(i,{context:l,options:s[1],request:s[0],requestID:h,result:m,stats:{duration:d,endTime:b,startTime:f}});case 17:case"end":return t.stop()}}),t)})));return function(e){return r.apply(this,arguments)}}()));case 5:return r.prev=5,r.t0=r.catch(1),r.abrupt("return",Promise.reject(r.t0));case 8:case"end":return r.stop()}}),r,null,[[1,5]])}))),function(){return o.apply(this,arguments)}))}}function P(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?P(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var I=(k=D(),O=D(),o((M=function(){function o(n){var c,i=this;r(this,o),s(this,"_cache",void 0),s(this,"_debugManager",void 0),s(this,"_eventEmitter",void 0),s(this,"_pending",new Map),s(this,"_worker",void 0),s(this,"_onMessage",(c=t(u.mark((function t(r){var n,s,o,c,p,h,l,f,m;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,a(n)){t.next=3;break}return t.abrupt("return");case 3:if(o=(s=n).context,c=s.method,p=s.result,"graphqlBox"===s.type&&a(p)){t.next=6;break}return t.abrupt("return");case 6:if(h=p._cacheMetadata,l=e(p,["_cacheMetadata"]),f=d(E(E({},l),{},{requestID:o.requestID})),h&&(f._cacheMetadata=g(h)),"request"!==c){t.next=16;break}if(m=i._pending.get(o.requestID)){t.next=13;break}return t.abrupt("return");case 13:m.resolve(f),t.next=17;break;case 16:("subscribe"===c||o.hasDeferOrStream)&&i._eventEmitter.emit(o.requestID,f);case 17:case"end":return t.stop()}}),t)}))),function(e){return c.apply(this,arguments)}));var p=[];if(a(n)||p.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),n.cache||p.push(new TypeError("@graphql-box/client expected options.cache.")),n.worker||p.push(new TypeError("@graphql-box/client expected options.worker.")),p.length)throw p;this._cache=n.cache,this._debugManager=n.debugManager?n.debugManager():null,this._eventEmitter=new w,this._worker=n.worker,this._addEventListener()}var i,p,v,y,j,_;return n(o,[{key:"cache",get:function(){return this._cache}},{key:"mutate",value:(_=t(u.mark((function e(t){var r,n,s=arguments;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=s.length>1&&void 0!==s[1]?s[1]:{},n=s.length>2&&void 0!==s[2]?s[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(h,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return _.apply(this,arguments)})},{key:"query",value:(j=t(u.mark((function e(t){var r,n,s=arguments;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=s.length>1&&void 0!==s[1]?s[1]:{},n=s.length>2&&void 0!==s[2]?s[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(l,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return j.apply(this,arguments)})},{key:"request",value:(y=t(u.mark((function e(t){var r,n,s=arguments;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=s.length>1&&void 0!==s[1]?s[1]:{},n=s.length>2&&void 0!==s[2]?s[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(l,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return y.apply(this,arguments)})},{key:"subscribe",value:(v=t(u.mark((function e(t){var r,n=arguments;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.abrupt("return",this._subscribe(t,r,this._getRequestContext(f,t)));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return v.apply(this,arguments)})},{key:"_addEventListener",value:function(){this._worker.addEventListener("message",this._onMessage)}},{key:"_getRequestContext",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return E({debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t,requestID:x(),whitelistHash:m(t)},r)}},{key:"_request",value:(p=t(u.mark((function e(t,r,n){var s,a=this;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n.hasDeferOrStream){e.next=3;break}return e.abrupt("return",new Promise((function(e){a._worker.postMessage({context:o._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),a._pending.set(n.requestID,{resolve:e})})));case 3:return this._worker.postMessage({context:o._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),s=new b(this._eventEmitter,n.requestID),e.abrupt("return",s.getIterator());case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",{errors:c(e.t0)});case 11:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e,t,r){return p.apply(this,arguments)})},{key:"_subscribe",value:(i=t(u.mark((function e(t,r,n){var s;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:o._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),s=new b(this._eventEmitter,n.requestID),e.abrupt("return",s.getIterator());case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",{errors:c(e.t0)});case 9:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t,r){return i.apply(this,arguments)})}],[{key:"_getMessageContext",value:function(e){var t=e.hasDeferOrStream;return{hasDeferOrStream:void 0!==t&&t,requestID:e.requestID}}}]),o}()).prototype,"_request",[k],Object.getOwnPropertyDescriptor(M.prototype,"_request"),M.prototype),o(M.prototype,"_subscribe",[O],Object.getOwnPropertyDescriptor(M.prototype,"_subscribe"),M.prototype),M);function C(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?C(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):C(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var S=self,T=S.addEventListener,R=S.postMessage;function L(){return(L=t(u.mark((function t(r,n,s,o,a){var c,i,p,h,l;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.request(r,s,o);case 2:if(c=t.sent,q(c)){t.next=9;break}return p=(i=c)._cacheMetadata,h=e(i,["_cacheMetadata"]),l=B({},h),p&&(l._cacheMetadata=v(p)),R({context:o,method:n,result:y(l),type:"graphqlBox"}),t.abrupt("return");case 9:_(c,(function(t){var r=t._cacheMetadata,s=B({},e(t,["_cacheMetadata"]));r&&(s._cacheMetadata=v(r)),R({context:o,method:n,result:y(s),type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function A(){return(A=t(u.mark((function t(r,n,s,o,a){var c;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.subscribe(r,s,o);case 2:if(c=t.sent,q(c)){t.next=6;break}return R({context:o,method:n,result:y(c),type:"graphqlBox"}),t.abrupt("return");case 6:_(c,(function(t){var r=t._cacheMetadata,s=B({},e(t,["_cacheMetadata"]));r&&(s._cacheMetadata=v(r)),R({context:o,method:n,result:y(s),type:"graphqlBox"})}));case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function F(e,t){var r=e,n=r.context,s=r.method,o=r.options,a=r.request;"request"===s?function(e,t,r,n,s){L.apply(this,arguments)}(a,s,o,n,t):"subscribe"===s&&function(e,t,r,n,s){A.apply(this,arguments)}(a,s,o,n,t)}function G(e){return H.apply(this,arguments)}function H(){return(H=t(u.mark((function e(t){var r,n;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(a(t)){var n=t.type;"graphqlBox"===n?F(t,r):"cachemap"===n&&r.cache&&j(t,r.cache)}},r=t.client,T("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default I;export{G as registerWorker};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../worker-client/src/consts/index.ts","../worker-client/src/debug/log-request/index.ts","../worker-client/src/main/index.ts","../worker-client/src/register-worker/index.ts"],"sourcesContent":["export const REQUEST_EXECUTED = \"request_executed\";\nexport const REQUEST_RESOLVED = \"request_resolved\";\n\nexport const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n","import { RequestContext } from \"@graphql-box/core\";\nimport { REQUEST_EXECUTED, REQUEST_RESOLVED } from \"../../consts\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n","import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.boxID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n","import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata, serializeErrors } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const requestResult = await client.request(request, options, context);\n\n if (!isAsyncIterable(requestResult)) {\n const { _cacheMetadata, ...otherProps } = requestResult as MaybeRequestResult;\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(requestResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nasync function handleSubscription(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const subscribeResult = await client.subscribe(request, options, context);\n\n if (!isAsyncIterable(subscribeResult)) {\n postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"names":["REQUEST_EXECUTED","logRequest","_target","_propertyName","descriptor","method","value","args","Promise","resolve","debugManager","otherContext","apply","_this","startTime","now","emit","context","options","request","stats","result","endTime","duration","reject","WorkerClient","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","deserializeErrors","requestID","boxID","rehydrateCacheMetadata","pending","_pending","get","hasDeferOrStream","_eventEmitter","errors","push","TypeError","cache","worker","length","_cache","_debugManager","EventEmitter","_worker","_addEventListener","this","_request","_getRequestContext","MUTATION","QUERY","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","uuid","fieldTypeMap","operationName","queryFiltered","whitelistHash","hashRequest","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","_castArray","self","client","requestResult","isAsyncIterable","dehydrateCacheMetadata","serializeErrors","forAwaitEach","subscribe","subscribeResult","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","handleCachemapMessage"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../worker-client/src/consts/index.ts","../worker-client/src/debug/log-request/index.ts","../worker-client/src/main/index.ts","../worker-client/src/register-worker/index.ts"],"sourcesContent":["export const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n","import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, requestID, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n","import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ hasDeferOrStream = false, requestID }: RequestContext): MessageContext {\n return { hasDeferOrStream, requestID };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n requestID: uuid(),\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.requestID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.requestID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.requestID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.requestID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n","import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata, serializeErrors } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const requestResult = await client.request(request, options, context);\n\n if (!isAsyncIterable(requestResult)) {\n const { _cacheMetadata, ...otherProps } = requestResult as MaybeRequestResult;\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(requestResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nasync function handleSubscription(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const subscribeResult = await client.subscribe(request, options, context);\n\n if (!isAsyncIterable(subscribeResult)) {\n postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"names":["logRequest","_target","_propertyName","descriptor","method","value","args","Promise","resolve","debugManager","requestID","otherContext","apply","_this","startTime","now","emit","REQUEST_EXECUTED","context","options","request","stats","result","endTime","duration","REQUEST_RESOLVED","reject","WorkerClient","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","deserializeErrors","rehydrateCacheMetadata","pending","_pending","get","hasDeferOrStream","_eventEmitter","errors","push","TypeError","cache","worker","length","_cache","_debugManager","EventEmitter","_worker","_addEventListener","this","_request","_getRequestContext","MUTATION","QUERY","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","uuid","whitelistHash","hashRequest","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","_castArray","self","client","requestResult","isAsyncIterable","dehydrateCacheMetadata","serializeErrors","forAwaitEach","subscribe","subscribeResult","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","handleCachemapMessage"],"mappings":"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"}
@@ -1,55 +1,53 @@
1
1
  -----------------------------
2
2
  Rollup File Analysis
3
3
  -----------------------------
4
- bundle size: 23.838 KB
5
- original size: 12.035 KB
4
+ bundle size: 23.953 KB
5
+ original size: 11.951 KB
6
6
  code reduction: 0 %
7
7
  module count: 6
8
8
 
9
9
  ███████████████████████████░░░░░░░░░░░░░░░░░░░░░░░
10
10
  file: /src/main/index.ts
11
- bundle space: 54.92 %
12
- rendered size: 13.092 KB
13
- original size: 5.527 KB
11
+ bundle space: 54.84 %
12
+ rendered size: 13.136 KB
13
+ original size: 5.563 KB
14
14
  code reduction: 0 %
15
15
  dependents: 1
16
16
  - /src/index.ts
17
17
 
18
18
  █████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
19
19
  file: /src/register-worker/index.ts
20
- bundle space: 26.71 %
20
+ bundle space: 26.58 %
21
21
  rendered size: 6.366 KB
22
22
  original size: 3.377 KB
23
23
  code reduction: 0 %
24
24
  dependents: 1
25
25
  - /src/index.ts
26
26
 
27
- ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
27
+ █████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
28
28
  file: /src/debug/log-request/index.ts
29
- bundle space: 17.44 %
30
- rendered size: 4.157 KB
31
- original size: 1.455 KB
29
+ bundle space: 18.01 %
30
+ rendered size: 4.314 KB
31
+ original size: 1.481 KB
32
32
  code reduction: 0 %
33
33
  dependents: 1
34
34
  - /src/main/index.ts
35
35
 
36
36
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
37
37
  file: /src/consts/index.ts
38
- bundle space: 0.94 %
39
- rendered size: 223 Bytes
40
- original size: 290 Bytes
41
- code reduction: 23.1 %
42
- dependents: 4
43
- - /src/debug/log-request/index.ts
38
+ bundle space: 0.57 %
39
+ rendered size: 137 Bytes
40
+ original size: 185 Bytes
41
+ code reduction: 25.95 %
42
+ dependents: 2
44
43
  - /src/main/index.ts
45
44
  - /src/register-worker/index.ts
46
- - /src/index.ts
47
45
 
48
46
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
49
47
  file: /src/defs/index.ts
50
48
  bundle space: 0 %
51
49
  rendered size: 0 Byte
52
- original size: 1.22 KB
50
+ original size: 1.224 KB
53
51
  code reduction: 100 %
54
52
  dependents: 1
55
53
  - /src/index.ts
@@ -58,7 +56,7 @@ dependents: 1
58
56
  file: /src/index.ts
59
57
  bundle space: 0 %
60
58
  rendered size: 0 Byte
61
- original size: 166 Bytes
59
+ original size: 121 Bytes
62
60
  code reduction: 100 %
63
61
  dependents: 0
64
62
 
@@ -3,11 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.CACHEMAP = exports.GRAPHQL_BOX = exports.MESSAGE = exports.SUBSCRIBE = exports.REQUEST = exports.REQUEST_RESOLVED = exports.REQUEST_EXECUTED = void 0;
7
- const REQUEST_EXECUTED = "request_executed";
8
- exports.REQUEST_EXECUTED = REQUEST_EXECUTED;
9
- const REQUEST_RESOLVED = "request_resolved";
10
- exports.REQUEST_RESOLVED = REQUEST_RESOLVED;
6
+ exports.CACHEMAP = exports.GRAPHQL_BOX = exports.MESSAGE = exports.SUBSCRIBE = exports.REQUEST = void 0;
11
7
  const REQUEST = "request";
12
8
  exports.REQUEST = REQUEST;
13
9
  const SUBSCRIBE = "subscribe";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/consts/index.ts"],"names":["REQUEST_EXECUTED","REQUEST_RESOLVED","REQUEST","SUBSCRIBE","MESSAGE","GRAPHQL_BOX","CACHEMAP"],"mappings":";;;;;;AAAO,MAAMA,gBAAgB,GAAG,kBAAzB;;AACA,MAAMC,gBAAgB,GAAG,kBAAzB;;AAEA,MAAMC,OAAO,GAAG,SAAhB;;AACA,MAAMC,SAAS,GAAG,WAAlB;;AAEA,MAAMC,OAAO,GAAG,SAAhB;;AAEA,MAAMC,WAAW,GAAG,YAApB;;AACA,MAAMC,QAAQ,GAAG,UAAjB","sourcesContent":["export const REQUEST_EXECUTED = \"request_executed\";\nexport const REQUEST_RESOLVED = \"request_resolved\";\n\nexport const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/consts/index.ts"],"names":["REQUEST","SUBSCRIBE","MESSAGE","GRAPHQL_BOX","CACHEMAP"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAG,SAAhB;;AACA,MAAMC,SAAS,GAAG,WAAlB;;AAEA,MAAMC,OAAO,GAAG,SAAhB;;AAEA,MAAMC,WAAW,GAAG,YAApB;;AACA,MAAMC,QAAQ,GAAG,UAAjB","sourcesContent":["export const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n"],"file":"index.js"}
@@ -7,7 +7,7 @@ exports.default = logRequest;
7
7
 
8
8
  require("core-js/modules/es.promise.js");
9
9
 
10
- var _consts = require("../../consts");
10
+ var _core = require("@graphql-box/core");
11
11
 
12
12
  function logRequest() {
13
13
  return (_target, _propertyName, descriptor) => {
@@ -19,6 +19,7 @@ function logRequest() {
19
19
  return new Promise(async resolve => {
20
20
  const {
21
21
  debugManager,
22
+ requestID,
22
23
  ...otherContext
23
24
  } = args[2];
24
25
 
@@ -28,10 +29,11 @@ function logRequest() {
28
29
  }
29
30
 
30
31
  const startTime = debugManager.now();
31
- debugManager.emit(_consts.REQUEST_EXECUTED, {
32
+ debugManager.emit(_core.REQUEST_EXECUTED, {
32
33
  context: otherContext,
33
34
  options: args[1],
34
35
  request: args[0],
36
+ requestID,
35
37
  stats: {
36
38
  startTime
37
39
  }
@@ -40,10 +42,11 @@ function logRequest() {
40
42
  const endTime = debugManager.now();
41
43
  const duration = endTime - startTime;
42
44
  resolve(result);
43
- debugManager.emit(_consts.REQUEST_RESOLVED, {
45
+ debugManager.emit(_core.REQUEST_RESOLVED, {
44
46
  context: otherContext,
45
47
  options: args[1],
46
48
  request: args[0],
49
+ requestID,
47
50
  result,
48
51
  stats: {
49
52
  duration,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","emit","REQUEST_EXECUTED","context","options","request","stats","result","endTime","duration","REQUEST_RESOLVED","error","reject"],"mappings":";;;;;;;;;AACA;;AAEe,SAASA,UAAT,GAAsB;AACnC,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,UAAI;AACF,eAAO,IAAIC,OAAJ,CAAY,MAAMC,OAAN,IAAiB;AAClC,gBAAM;AAAEC,YAAAA,YAAF;AAAgB,eAAGC;AAAnB,cAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMM,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AAEAJ,UAAAA,YAAY,CAACK,IAAb,CAAkBC,wBAAlB,EAAoC;AAClCC,YAAAA,OAAO,EAAEN,YADyB;AAElCO,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAFqB;AAGlCY,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAHqB;AAIlCa,YAAAA,KAAK,EAAE;AAAEP,cAAAA;AAAF;AAJ2B,WAApC;AAOA,gBAAMQ,MAAM,GAAG,MAAMjB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACA,gBAAMe,OAAO,GAAGZ,YAAY,CAACI,GAAb,EAAhB;AACA,gBAAMS,QAAQ,GAAGD,OAAO,GAAGT,SAA3B;AACAJ,UAAAA,OAAO,CAACY,MAAD,CAAP;AAEAX,UAAAA,YAAY,CAACK,IAAb,CAAkBS,wBAAlB,EAAoC;AAClCP,YAAAA,OAAO,EAAEN,YADyB;AAElCO,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAFqB;AAGlCY,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAHqB;AAIlCc,YAAAA,MAJkC;AAKlCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBT,cAAAA;AAArB;AAL2B,WAApC;AAOD,SA7BM,CAAP;AA8BD,OA/BD,CA+BE,OAAOY,KAAP,EAAc;AACd,eAAOjB,OAAO,CAACkB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KAnCD;AAoCD,GA5CD;AA6CD","sourcesContent":["import { RequestContext } from \"@graphql-box/core\";\nimport { REQUEST_EXECUTED, REQUEST_RESOLVED } from \"../../consts\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","requestID","otherContext","apply","startTime","now","emit","REQUEST_EXECUTED","context","options","request","stats","result","endTime","duration","REQUEST_RESOLVED","error","reject"],"mappings":";;;;;;;;;AAAA;;AAEe,SAASA,UAAT,GAAsB;AACnC,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,UAAI;AACF,eAAO,IAAIC,OAAJ,CAAY,MAAMC,OAAN,IAAiB;AAClC,gBAAM;AAAEC,YAAAA,YAAF;AAAgBC,YAAAA,SAAhB;AAA2B,eAAGC;AAA9B,cAA+CL,IAAI,CAAC,CAAD,CAAzD;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACS,KAAP,CAAa,IAAb,EAAmBN,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMO,SAAS,GAAGJ,YAAY,CAACK,GAAb,EAAlB;AAEAL,UAAAA,YAAY,CAACM,IAAb,CAAkBC,sBAAlB,EAAoC;AAClCC,YAAAA,OAAO,EAAEN,YADyB;AAElCO,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAFqB;AAGlCa,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAHqB;AAIlCI,YAAAA,SAJkC;AAKlCU,YAAAA,KAAK,EAAE;AAAEP,cAAAA;AAAF;AAL2B,WAApC;AAQA,gBAAMQ,MAAM,GAAG,MAAMlB,MAAM,CAACS,KAAP,CAAa,IAAb,EAAmBN,IAAnB,CAArB;AACA,gBAAMgB,OAAO,GAAGb,YAAY,CAACK,GAAb,EAAhB;AACA,gBAAMS,QAAQ,GAAGD,OAAO,GAAGT,SAA3B;AACAL,UAAAA,OAAO,CAACa,MAAD,CAAP;AAEAZ,UAAAA,YAAY,CAACM,IAAb,CAAkBS,sBAAlB,EAAoC;AAClCP,YAAAA,OAAO,EAAEN,YADyB;AAElCO,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAFqB;AAGlCa,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAHqB;AAIlCI,YAAAA,SAJkC;AAKlCW,YAAAA,MALkC;AAMlCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBT,cAAAA;AAArB;AAN2B,WAApC;AAQD,SA/BM,CAAP;AAgCD,OAjCD,CAiCE,OAAOY,KAAP,EAAc;AACd,eAAOlB,OAAO,CAACmB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KArCD;AAsCD,GA9CD;AA+CD","sourcesContent":["import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, requestID, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n"],"file":"index.js"}
package/lib/main/index.js CHANGED
@@ -6,15 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  var _exportNames = {
9
- REQUEST_EXECUTED: true,
10
9
  registerWorker: true
11
10
  };
12
- Object.defineProperty(exports, "REQUEST_EXECUTED", {
13
- enumerable: true,
14
- get: function () {
15
- return _consts.REQUEST_EXECUTED;
16
- }
17
- });
18
11
  Object.defineProperty(exports, "default", {
19
12
  enumerable: true,
20
13
  get: function () {
@@ -28,8 +21,6 @@ Object.defineProperty(exports, "registerWorker", {
28
21
  }
29
22
  });
30
23
 
31
- var _consts = require("./consts");
32
-
33
24
  var _defs = require("./defs");
34
25
 
35
26
  Object.keys(_defs).forEach(function (key) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA","sourcesContent":["export { REQUEST_EXECUTED } from \"./consts\";\nexport * from \"./defs\";\nexport { default } from \"./main\";\nexport { default as registerWorker } from \"./register-worker\";\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA","sourcesContent":["export * from \"./defs\";\nexport { default } from \"./main\";\nexport { default as registerWorker } from \"./register-worker\";\n"],"file":"index.js"}
@@ -33,12 +33,12 @@ var _dec, _dec2, _class;
33
33
 
34
34
  let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.default)(), (_class = class WorkerClient {
35
35
  static _getMessageContext({
36
- boxID,
37
- hasDeferOrStream = false
36
+ hasDeferOrStream = false,
37
+ requestID
38
38
  }) {
39
39
  return {
40
- boxID,
41
- hasDeferOrStream
40
+ hasDeferOrStream,
41
+ requestID
42
42
  };
43
43
  }
44
44
 
@@ -71,7 +71,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
71
71
  ...otherProps
72
72
  } = result;
73
73
  const response = (0, _helpers.deserializeErrors)({ ...otherProps,
74
- requestID: context.boxID
74
+ requestID: context.requestID
75
75
  });
76
76
 
77
77
  if (_cacheMetadata) {
@@ -79,7 +79,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
79
79
  }
80
80
 
81
81
  if (method === _consts.REQUEST) {
82
- const pending = this._pending.get(context.boxID);
82
+ const pending = this._pending.get(context.requestID);
83
83
 
84
84
  if (!pending) {
85
85
  return;
@@ -87,7 +87,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
87
87
 
88
88
  pending.resolve(response);
89
89
  } else if (method === _consts.SUBSCRIBE || context.hasDeferOrStream) {
90
- this._eventEmitter.emit(context.boxID, response);
90
+ this._eventEmitter.emit(context.requestID, response);
91
91
  }
92
92
  });
93
93
  const errors = [];
@@ -142,13 +142,13 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
142
142
 
143
143
  _getRequestContext(operation, request, context = {}) {
144
144
  return {
145
- boxID: (0, _uuid.v1)(),
146
145
  debugManager: this._debugManager,
147
146
  fieldTypeMap: new Map(),
148
147
  operation,
149
148
  operationName: "",
150
149
  queryFiltered: false,
151
150
  request,
151
+ requestID: (0, _uuid.v1)(),
152
152
  whitelistHash: (0, _helpers.hashRequest)(request),
153
153
  ...context
154
154
  };
@@ -166,7 +166,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
166
166
  type: _consts.GRAPHQL_BOX
167
167
  });
168
168
 
169
- this._pending.set(context.boxID, {
169
+ this._pending.set(context.requestID, {
170
170
  resolve
171
171
  });
172
172
  });
@@ -180,7 +180,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
180
180
  type: _consts.GRAPHQL_BOX
181
181
  });
182
182
 
183
- const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.boxID);
183
+ const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.requestID);
184
184
  return eventAsyncIterator.getIterator();
185
185
  } catch (error) {
186
186
  return {
@@ -199,7 +199,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
199
199
  type: _consts.GRAPHQL_BOX
200
200
  });
201
201
 
202
- const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.boxID);
202
+ const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.requestID);
203
203
  return eventAsyncIterator.getIterator();
204
204
  } catch (error) {
205
205
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","_getMessageContext","boxID","hasDeferOrStream","constructor","options","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","requestID","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","EventEmitter","_worker","_addEventListener","mutate","request","_request","_getRequestContext","MUTATION","query","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator","error"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.boxID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","_getMessageContext","hasDeferOrStream","requestID","constructor","options","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","EventEmitter","_worker","_addEventListener","mutate","request","_request","_getRequestContext","MUTATION","query","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator","error"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ hasDeferOrStream = false, requestID }: RequestContext): MessageContext {\n return { hasDeferOrStream, requestID };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n requestID: uuid(),\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.requestID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.requestID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.requestID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.requestID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
@@ -1,5 +1,3 @@
1
- export const REQUEST_EXECUTED = "request_executed";
2
- export const REQUEST_RESOLVED = "request_resolved";
3
1
  export const REQUEST = "request";
4
2
  export const SUBSCRIBE = "subscribe";
5
3
  export const MESSAGE = "message";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/consts/index.ts"],"names":["REQUEST_EXECUTED","REQUEST_RESOLVED","REQUEST","SUBSCRIBE","MESSAGE","GRAPHQL_BOX","CACHEMAP"],"mappings":"AAAA,OAAO,MAAMA,gBAAgB,GAAG,kBAAzB;AACP,OAAO,MAAMC,gBAAgB,GAAG,kBAAzB;AAEP,OAAO,MAAMC,OAAO,GAAG,SAAhB;AACP,OAAO,MAAMC,SAAS,GAAG,WAAlB;AAEP,OAAO,MAAMC,OAAO,GAAG,SAAhB;AAEP,OAAO,MAAMC,WAAW,GAAG,YAApB;AACP,OAAO,MAAMC,QAAQ,GAAG,UAAjB","sourcesContent":["export const REQUEST_EXECUTED = \"request_executed\";\nexport const REQUEST_RESOLVED = \"request_resolved\";\n\nexport const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/consts/index.ts"],"names":["REQUEST","SUBSCRIBE","MESSAGE","GRAPHQL_BOX","CACHEMAP"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAhB;AACP,OAAO,MAAMC,SAAS,GAAG,WAAlB;AAEP,OAAO,MAAMC,OAAO,GAAG,SAAhB;AAEP,OAAO,MAAMC,WAAW,GAAG,YAApB;AACP,OAAO,MAAMC,QAAQ,GAAG,UAAjB","sourcesContent":["export const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n"],"file":"index.js"}
@@ -1,5 +1,5 @@
1
1
  import "core-js/modules/es.promise.js";
2
- import { REQUEST_EXECUTED, REQUEST_RESOLVED } from "../../consts";
2
+ import { REQUEST_EXECUTED, REQUEST_RESOLVED } from "@graphql-box/core";
3
3
  export default function logRequest() {
4
4
  return (_target, _propertyName, descriptor) => {
5
5
  const method = descriptor.value;
@@ -10,6 +10,7 @@ export default function logRequest() {
10
10
  return new Promise(async resolve => {
11
11
  const {
12
12
  debugManager,
13
+ requestID,
13
14
  ...otherContext
14
15
  } = args[2];
15
16
 
@@ -23,6 +24,7 @@ export default function logRequest() {
23
24
  context: otherContext,
24
25
  options: args[1],
25
26
  request: args[0],
27
+ requestID,
26
28
  stats: {
27
29
  startTime
28
30
  }
@@ -35,6 +37,7 @@ export default function logRequest() {
35
37
  context: otherContext,
36
38
  options: args[1],
37
39
  request: args[0],
40
+ requestID,
38
41
  result,
39
42
  stats: {
40
43
  duration,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["REQUEST_EXECUTED","REQUEST_RESOLVED","logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","emit","context","options","request","stats","result","endTime","duration","error","reject"],"mappings":";AACA,SAASA,gBAAT,EAA2BC,gBAA3B,QAAmD,cAAnD;AAEA,eAAe,SAASC,UAAT,GAAsB;AACnC,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,UAAI;AACF,eAAO,IAAIC,OAAJ,CAAY,MAAMC,OAAN,IAAiB;AAClC,gBAAM;AAAEC,YAAAA,YAAF;AAAgB,eAAGC;AAAnB,cAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMM,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AAEAJ,UAAAA,YAAY,CAACK,IAAb,CAAkBjB,gBAAlB,EAAoC;AAClCkB,YAAAA,OAAO,EAAEL,YADyB;AAElCM,YAAAA,OAAO,EAAEV,IAAI,CAAC,CAAD,CAFqB;AAGlCW,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAHqB;AAIlCY,YAAAA,KAAK,EAAE;AAAEN,cAAAA;AAAF;AAJ2B,WAApC;AAOA,gBAAMO,MAAM,GAAG,MAAMhB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACA,gBAAMc,OAAO,GAAGX,YAAY,CAACI,GAAb,EAAhB;AACA,gBAAMQ,QAAQ,GAAGD,OAAO,GAAGR,SAA3B;AACAJ,UAAAA,OAAO,CAACW,MAAD,CAAP;AAEAV,UAAAA,YAAY,CAACK,IAAb,CAAkBhB,gBAAlB,EAAoC;AAClCiB,YAAAA,OAAO,EAAEL,YADyB;AAElCM,YAAAA,OAAO,EAAEV,IAAI,CAAC,CAAD,CAFqB;AAGlCW,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAHqB;AAIlCa,YAAAA,MAJkC;AAKlCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBR,cAAAA;AAArB;AAL2B,WAApC;AAOD,SA7BM,CAAP;AA8BD,OA/BD,CA+BE,OAAOU,KAAP,EAAc;AACd,eAAOf,OAAO,CAACgB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KAnCD;AAoCD,GA5CD;AA6CD","sourcesContent":["import { RequestContext } from \"@graphql-box/core\";\nimport { REQUEST_EXECUTED, REQUEST_RESOLVED } from \"../../consts\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["REQUEST_EXECUTED","REQUEST_RESOLVED","logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","requestID","otherContext","apply","startTime","now","emit","context","options","request","stats","result","endTime","duration","error","reject"],"mappings":";AAAA,SAASA,gBAAT,EAA2BC,gBAA3B,QAAmE,mBAAnE;AAEA,eAAe,SAASC,UAAT,GAAsB;AACnC,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,UAAI;AACF,eAAO,IAAIC,OAAJ,CAAY,MAAMC,OAAN,IAAiB;AAClC,gBAAM;AAAEC,YAAAA,YAAF;AAAgBC,YAAAA,SAAhB;AAA2B,eAAGC;AAA9B,cAA+CL,IAAI,CAAC,CAAD,CAAzD;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACS,KAAP,CAAa,IAAb,EAAmBN,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMO,SAAS,GAAGJ,YAAY,CAACK,GAAb,EAAlB;AAEAL,UAAAA,YAAY,CAACM,IAAb,CAAkBlB,gBAAlB,EAAoC;AAClCmB,YAAAA,OAAO,EAAEL,YADyB;AAElCM,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAFqB;AAGlCY,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAHqB;AAIlCI,YAAAA,SAJkC;AAKlCS,YAAAA,KAAK,EAAE;AAAEN,cAAAA;AAAF;AAL2B,WAApC;AAQA,gBAAMO,MAAM,GAAG,MAAMjB,MAAM,CAACS,KAAP,CAAa,IAAb,EAAmBN,IAAnB,CAArB;AACA,gBAAMe,OAAO,GAAGZ,YAAY,CAACK,GAAb,EAAhB;AACA,gBAAMQ,QAAQ,GAAGD,OAAO,GAAGR,SAA3B;AACAL,UAAAA,OAAO,CAACY,MAAD,CAAP;AAEAX,UAAAA,YAAY,CAACM,IAAb,CAAkBjB,gBAAlB,EAAoC;AAClCkB,YAAAA,OAAO,EAAEL,YADyB;AAElCM,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAFqB;AAGlCY,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAHqB;AAIlCI,YAAAA,SAJkC;AAKlCU,YAAAA,MALkC;AAMlCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBR,cAAAA;AAArB;AAN2B,WAApC;AAQD,SA/BM,CAAP;AAgCD,OAjCD,CAiCE,OAAOU,KAAP,EAAc;AACd,eAAOhB,OAAO,CAACiB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KArCD;AAsCD,GA9CD;AA+CD","sourcesContent":["import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, requestID, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n"],"file":"index.js"}
@@ -1,4 +1,3 @@
1
- export { REQUEST_EXECUTED } from "./consts";
2
1
  export * from "./defs";
3
2
  export { default } from "./main";
4
3
  export { default as registerWorker } from "./register-worker";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":["REQUEST_EXECUTED","default","registerWorker"],"mappings":"AAAA,SAASA,gBAAT,QAAiC,UAAjC;AACA,cAAc,QAAd;AACA,SAASC,OAAT,QAAwB,QAAxB;AACA,SAASA,OAAO,IAAIC,cAApB,QAA0C,mBAA1C","sourcesContent":["export { REQUEST_EXECUTED } from \"./consts\";\nexport * from \"./defs\";\nexport { default } from \"./main\";\nexport { default as registerWorker } from \"./register-worker\";\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":["default","registerWorker"],"mappings":"AAAA,cAAc,QAAd;AACA,SAASA,OAAT,QAAwB,QAAxB;AACA,SAASA,OAAO,IAAIC,cAApB,QAA0C,mBAA1C","sourcesContent":["export * from \"./defs\";\nexport { default } from \"./main\";\nexport { default as registerWorker } from \"./register-worker\";\n"],"file":"index.js"}
@@ -14,12 +14,12 @@ import { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from "../consts";
14
14
  import logRequest from "../debug/log-request";
15
15
  let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class WorkerClient {
16
16
  static _getMessageContext({
17
- boxID,
18
- hasDeferOrStream = false
17
+ hasDeferOrStream = false,
18
+ requestID
19
19
  }) {
20
20
  return {
21
- boxID,
22
- hasDeferOrStream
21
+ hasDeferOrStream,
22
+ requestID
23
23
  };
24
24
  }
25
25
 
@@ -57,7 +57,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
57
57
  ...otherProps
58
58
  } = result;
59
59
  const response = deserializeErrors({ ...otherProps,
60
- requestID: context.boxID
60
+ requestID: context.requestID
61
61
  });
62
62
 
63
63
  if (_cacheMetadata) {
@@ -65,7 +65,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
65
65
  }
66
66
 
67
67
  if (method === REQUEST) {
68
- const pending = this._pending.get(context.boxID);
68
+ const pending = this._pending.get(context.requestID);
69
69
 
70
70
  if (!pending) {
71
71
  return;
@@ -73,7 +73,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
73
73
 
74
74
  pending.resolve(response);
75
75
  } else if (method === SUBSCRIBE || context.hasDeferOrStream) {
76
- this._eventEmitter.emit(context.boxID, response);
76
+ this._eventEmitter.emit(context.requestID, response);
77
77
  }
78
78
  });
79
79
 
@@ -129,13 +129,13 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
129
129
 
130
130
  _getRequestContext(operation, request, context = {}) {
131
131
  return {
132
- boxID: uuid(),
133
132
  debugManager: this._debugManager,
134
133
  fieldTypeMap: new Map(),
135
134
  operation,
136
135
  operationName: "",
137
136
  queryFiltered: false,
138
137
  request,
138
+ requestID: uuid(),
139
139
  whitelistHash: hashRequest(request),
140
140
  ...context
141
141
  };
@@ -153,7 +153,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
153
153
  type: GRAPHQL_BOX
154
154
  });
155
155
 
156
- this._pending.set(context.boxID, {
156
+ this._pending.set(context.requestID, {
157
157
  resolve
158
158
  });
159
159
  });
@@ -167,7 +167,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
167
167
  type: GRAPHQL_BOX
168
168
  });
169
169
 
170
- const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);
170
+ const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.requestID);
171
171
  return eventAsyncIterator.getIterator();
172
172
  } catch (error) {
173
173
  return {
@@ -186,7 +186,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
186
186
  type: GRAPHQL_BOX
187
187
  });
188
188
 
189
- const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);
189
+ const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.requestID);
190
190
  return eventAsyncIterator.getIterator();
191
191
  } catch (error) {
192
192
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/index.ts"],"names":["MUTATION","QUERY","SUBSCRIPTION","EventAsyncIterator","deserializeErrors","hashRequest","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","WorkerClient","_getMessageContext","boxID","hasDeferOrStream","constructor","options","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","requestID","pending","_pending","get","resolve","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","_worker","_addEventListener","mutate","request","_request","_getRequestContext","query","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","getIterator","error"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.boxID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["MUTATION","QUERY","SUBSCRIPTION","EventAsyncIterator","deserializeErrors","hashRequest","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","WorkerClient","_getMessageContext","hasDeferOrStream","requestID","constructor","options","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","pending","_pending","get","resolve","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","_worker","_addEventListener","mutate","request","_request","_getRequestContext","query","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","getIterator","error"],"mappings":";;;;;;;;AACA,SAEEA,QAFF,EAKEC,KALF,EAQEC,YARF,QAUO,mBAVP;AAWA,SAASC,kBAAT,EAA6BC,iBAA7B,EAAgDC,WAAhD,EAA6DC,sBAA7D,QAA2F,sBAA3F;AACA,OAAOC,YAAP,MAAyB,eAAzB;AAEA,SAASC,EAAE,IAAIC,IAAf,QAA2B,MAA3B;AACA,SAASC,WAAT,EAAsBC,OAAtB,EAA+BC,OAA/B,EAAwCC,SAAxC,QAAyD,WAAzD;AACA,OAAOC,UAAP,MAAuB,sBAAvB;IAGqBC,Y,WA8GlBD,UAAU,E,UAgCVA,UAAU,E,YA9IE,MAAMC,YAAN,CAAmB;AACC,SAAlBC,kBAAkB,CAAC;AAAEC,IAAAA,gBAAgB,GAAG,KAArB;AAA4BC,IAAAA;AAA5B,GAAD,EAA0E;AACzG,WAAO;AAAED,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,KAAP;AACD;;AAQDC,EAAAA,WAAW,CAACC,OAAD,EAAuB;AAAA;;AAAA;;AAAA;;AAAA,sCAHC,IAAIC,GAAJ,EAGD;;AAAA;;AAAA,wCAoEb,OAAO;AAAEC,MAAAA;AAAF,KAAP,KAAiD;AACpE,UAAI,CAAC,eAAcA,IAAd,CAAL,EAA0B;AACxB;AACD;;AAED,YAAM;AAAEC,QAAAA,OAAF;AAAWC,QAAAA,MAAX;AAAmBC,QAAAA,MAAnB;AAA2BC,QAAAA;AAA3B,UAAoCJ,IAA1C;;AAEA,UAAII,IAAI,KAAKhB,WAAT,IAAwB,CAAC,eAAce,MAAd,CAA7B,EAAoD;AAClD;AACD;;AAED,YAAM;AAAEE,QAAAA,cAAF;AAAkB,WAAGC;AAArB,UAAoCH,MAA1C;AACA,YAAMI,QAA4B,GAAGzB,iBAAiB,CAAC,EAAE,GAAGwB,UAAL;AAAiBV,QAAAA,SAAS,EAAEK,OAAO,CAACL;AAApC,OAAD,CAAtD;;AAEA,UAAIS,cAAJ,EAAoB;AAClBE,QAAAA,QAAQ,CAACF,cAAT,GAA0BrB,sBAAsB,CAACqB,cAAD,CAAhD;AACD;;AAED,UAAIH,MAAM,KAAKZ,OAAf,EAAwB;AACtB,cAAMkB,OAAO,GAAG,KAAKC,QAAL,CAAcC,GAAd,CAAkBT,OAAO,CAACL,SAA1B,CAAhB;;AAEA,YAAI,CAACY,OAAL,EAAc;AACZ;AACD;;AAEDA,QAAAA,OAAO,CAACG,OAAR,CAAgBJ,QAAhB;AACD,OARD,MAQO,IAAIL,MAAM,KAAKX,SAAX,IAAwBU,OAAO,CAACN,gBAApC,EAAsD;AAC3D,aAAKiB,aAAL,CAAmBC,IAAnB,CAAwBZ,OAAO,CAACL,SAAhC,EAA2CW,QAA3C;AACD;AACF,KAjGiC;;AAChC,UAAMO,MAAmB,GAAG,EAA5B;;AAEA,QAAI,CAAC,eAAchB,OAAd,CAAL,EAA6B;AAC3BgB,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,4DAAd,CAAZ;AACD;;AAED,QAAI,CAAClB,OAAO,CAACmB,KAAb,EAAoB;AAClBH,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,6CAAd,CAAZ;AACD;;AAED,QAAI,CAAClB,OAAO,CAACoB,MAAb,EAAqB;AACnBJ,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,8CAAd,CAAZ;AACD;;AAED,QAAIF,MAAM,CAACK,MAAX,EAAmB;AACjB,YAAML,MAAN;AACD;;AAED,SAAKM,MAAL,GAActB,OAAO,CAACmB,KAAtB;AACA,SAAKI,aAAL,GAAqBvB,OAAO,CAACwB,YAAR,GAAuBxB,OAAO,CAACwB,YAAR,EAAvB,GAAgD,IAArE;AACA,SAAKV,aAAL,GAAqB,IAAI3B,YAAJ,EAArB;AACA,SAAKsC,OAAL,GAAezB,OAAO,CAACoB,MAAvB;;AACA,SAAKM,iBAAL;AACD;;AAEQ,MAALP,KAAK,GAAmB;AAC1B,WAAO,KAAKG,MAAZ;AACD;;AAEkB,QAANK,MAAM,CAACC,OAAD,EAAkB5B,OAAuB,GAAG,EAA5C,EAAgDG,OAA4B,GAAG,EAA/E,EAAmF;AACpG,WAAO,KAAK0B,QAAL,CAAcD,OAAd,EAAuB5B,OAAvB,EAAgC,KAAK8B,kBAAL,CAAwBlD,QAAxB,EAAkCgD,OAAlC,EAA2CzB,OAA3C,CAAhC,CAAP;AACD;;AAEiB,QAAL4B,KAAK,CAACH,OAAD,EAAkB5B,OAAuB,GAAG,EAA5C,EAAgDG,OAA4B,GAAG,EAA/E,EAAmF;AACnG,WAAO,KAAK0B,QAAL,CAAcD,OAAd,EAAuB5B,OAAvB,EAAgC,KAAK8B,kBAAL,CAAwBjD,KAAxB,EAA+B+C,OAA/B,EAAwCzB,OAAxC,CAAhC,CAAP;AACD;;AAEmB,QAAPyB,OAAO,CAACA,OAAD,EAAkB5B,OAAuB,GAAG,EAA5C,EAAgDG,OAA4B,GAAG,EAA/E,EAAmF;AACrG,WAAO,KAAK0B,QAAL,CAAcD,OAAd,EAAuB5B,OAAvB,EAAgC,KAAK8B,kBAAL,CAAwBjD,KAAxB,EAA+B+C,OAA/B,EAAwCzB,OAAxC,CAAhC,CAAP;AACD;;AAEqB,QAAT6B,SAAS,CAACJ,OAAD,EAAkB5B,OAAuB,GAAG,EAA5C,EAAgD;AACpE,WAAO,KAAKiC,UAAL,CAAgBL,OAAhB,EAAyB5B,OAAzB,EAAkC,KAAK8B,kBAAL,CAAwBhD,YAAxB,EAAsC8C,OAAtC,CAAlC,CAAP;AACD;;AAEOF,EAAAA,iBAAiB,GAAS;AAChC,SAAKD,OAAL,CAAaS,gBAAb,CAA8B3C,OAA9B,EAAuC,KAAK4C,UAA5C;AACD;;AAEOL,EAAAA,kBAAkB,CACxBM,SADwB,EAExBR,OAFwB,EAGxBzB,OAA4B,GAAG,EAHP,EAIR;AAChB,WAAO;AACLqB,MAAAA,YAAY,EAAE,KAAKD,aADd;AAELc,MAAAA,YAAY,EAAE,IAAIpC,GAAJ,EAFT;AAGLmC,MAAAA,SAHK;AAILE,MAAAA,aAAa,EAAE,EAJV;AAKLC,MAAAA,aAAa,EAAE,KALV;AAMLX,MAAAA,OANK;AAOL9B,MAAAA,SAAS,EAAET,IAAI,EAPV;AAQLmD,MAAAA,aAAa,EAAEvD,WAAW,CAAC2C,OAAD,CARrB;AASL,SAAGzB;AATE,KAAP;AAWD;;AAkCqB,QAAR0B,QAAQ,CAACD,OAAD,EAAkB5B,OAAlB,EAA2CG,OAA3C,EAAoE;AACxF,QAAI;AACF,UAAI,CAACA,OAAO,CAACN,gBAAb,EAA+B;AAC7B,eAAO,IAAI4C,OAAJ,CAAa5B,OAAD,IAA8B;AAC/C,eAAKY,OAAL,CAAaiB,WAAb,CAAyB;AACvBvC,YAAAA,OAAO,EAAER,YAAY,CAACC,kBAAb,CAAgCO,OAAhC,CADc;AAEvBC,YAAAA,MAAM,EAAEZ,OAFe;AAGvBQ,YAAAA,OAHuB;AAIvB4B,YAAAA,OAJuB;AAKvBtB,YAAAA,IAAI,EAAEhB;AALiB,WAAzB;;AAQA,eAAKqB,QAAL,CAAcgC,GAAd,CAAkBxC,OAAO,CAACL,SAA1B,EAAqC;AAAEe,YAAAA;AAAF,WAArC;AACD,SAVM,CAAP;AAWD;;AAED,WAAKY,OAAL,CAAaiB,WAAb,CAAyB;AACvBvC,QAAAA,OAAO,EAAER,YAAY,CAACC,kBAAb,CAAgCO,OAAhC,CADc;AAEvBC,QAAAA,MAAM,EAAEZ,OAFe;AAGvBQ,QAAAA,OAHuB;AAIvB4B,QAAAA,OAJuB;AAKvBtB,QAAAA,IAAI,EAAEhB;AALiB,OAAzB;;AAQA,YAAMsD,kBAAkB,GAAG,IAAI7D,kBAAJ,CAA2C,KAAK+B,aAAhD,EAA+DX,OAAO,CAACL,SAAvE,CAA3B;AACA,aAAO8C,kBAAkB,CAACC,WAAnB,EAAP;AACD,KAzBD,CAyBE,OAAOC,KAAP,EAAc;AACd,aAAO;AAAE9B,QAAAA,MAAM,EAAE,WAAU8B,KAAV;AAAV,OAAP;AACD;AACF;;AAGuB,QAAVb,UAAU,CAACL,OAAD,EAAkB5B,OAAlB,EAA2CG,OAA3C,EAAoE;AAC1F,QAAI;AACF,WAAKsB,OAAL,CAAaiB,WAAb,CAAyB;AACvBvC,QAAAA,OAAO,EAAER,YAAY,CAACC,kBAAb,CAAgCO,OAAhC,CADc;AAEvBC,QAAAA,MAAM,EAAEX,SAFe;AAGvBO,QAAAA,OAHuB;AAIvB4B,QAAAA,OAJuB;AAKvBtB,QAAAA,IAAI,EAAEhB;AALiB,OAAzB;;AAQA,YAAMsD,kBAAkB,GAAG,IAAI7D,kBAAJ,CAA2C,KAAK+B,aAAhD,EAA+DX,OAAO,CAACL,SAAvE,CAA3B;AACA,aAAO8C,kBAAkB,CAACC,WAAnB,EAAP;AACD,KAXD,CAWE,OAAOC,KAAP,EAAc;AACd,aAAO;AAAE9B,QAAAA,MAAM,EAAE,WAAU8B,KAAV;AAAV,OAAP;AACD;AACF;;AA9J+B,C;SAAbnD,Y","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ hasDeferOrStream = false, requestID }: RequestContext): MessageContext {\n return { hasDeferOrStream, requestID };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n requestID: uuid(),\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.requestID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.requestID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.requestID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.requestID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
@@ -1,5 +1,3 @@
1
- export declare const REQUEST_EXECUTED = "request_executed";
2
- export declare const REQUEST_RESOLVED = "request_resolved";
3
1
  export declare const REQUEST = "request";
4
2
  export declare const SUBSCRIBE = "subscribe";
5
3
  export declare const MESSAGE = "message";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/consts/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,WAAW,eAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/consts/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,WAAW,eAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-request/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,UAAU,cAErB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CAyCR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-request/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,cAErB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CA2CR"}
@@ -36,8 +36,8 @@ export interface MessageResponsePayload {
36
36
  type: "graphqlBox" | "cachemap";
37
37
  }
38
38
  export interface MessageContext {
39
- boxID: string;
40
39
  hasDeferOrStream: boolean;
40
+ requestID: string;
41
41
  }
42
42
  export interface RegisterWorkerOptions {
43
43
  client: Client;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/defs/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD,oBAAY,eAAe,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,oBAAY,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/defs/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD,oBAAY,eAAe,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,oBAAY,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -1,4 +1,3 @@
1
- export { REQUEST_EXECUTED } from "./consts";
2
1
  export * from "./defs";
3
2
  export { default } from "./main";
4
3
  export { default as registerWorker } from "./register-worker";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-box/worker-client",
3
- "version": "3.6.2",
3
+ "version": "3.7.1",
4
4
  "description": "The GraphQL Box web worker client module.",
5
5
  "author": "Dylan Aubrey <dylanaubrey@gmail.com>",
6
6
  "license": "MIT",
@@ -1,6 +1,3 @@
1
- export const REQUEST_EXECUTED = "request_executed";
2
- export const REQUEST_RESOLVED = "request_resolved";
3
-
4
1
  export const REQUEST = "request";
5
2
  export const SUBSCRIBE = "subscribe";
6
3
 
@@ -1,5 +1,4 @@
1
- import { RequestContext } from "@graphql-box/core";
2
- import { REQUEST_EXECUTED, REQUEST_RESOLVED } from "../../consts";
1
+ import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from "@graphql-box/core";
3
2
 
4
3
  export default function logRequest() {
5
4
  return (
@@ -13,7 +12,7 @@ export default function logRequest() {
13
12
  descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {
14
13
  try {
15
14
  return new Promise(async resolve => {
16
- const { debugManager, ...otherContext } = args[2] as RequestContext;
15
+ const { debugManager, requestID, ...otherContext } = args[2] as RequestContext;
17
16
 
18
17
  if (!debugManager) {
19
18
  resolve(await method.apply(this, args));
@@ -26,6 +25,7 @@ export default function logRequest() {
26
25
  context: otherContext,
27
26
  options: args[1],
28
27
  request: args[0],
28
+ requestID,
29
29
  stats: { startTime },
30
30
  });
31
31
 
@@ -38,6 +38,7 @@ export default function logRequest() {
38
38
  context: otherContext,
39
39
  options: args[1],
40
40
  request: args[0],
41
+ requestID,
41
42
  result,
42
43
  stats: { duration, endTime, startTime },
43
44
  });
package/src/defs/index.ts CHANGED
@@ -46,8 +46,8 @@ export interface MessageResponsePayload {
46
46
  }
47
47
 
48
48
  export interface MessageContext {
49
- boxID: string;
50
49
  hasDeferOrStream: boolean;
50
+ requestID: string;
51
51
  }
52
52
 
53
53
  export interface RegisterWorkerOptions {
package/src/index.ts CHANGED
@@ -1,4 +1,3 @@
1
- export { REQUEST_EXECUTED } from "./consts";
2
1
  export * from "./defs";
3
2
  export { default } from "./main";
4
3
  export { default as registerWorker } from "./register-worker";
package/src/main/index.ts CHANGED
@@ -19,8 +19,8 @@ import logRequest from "../debug/log-request";
19
19
  import { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from "../defs";
20
20
 
21
21
  export default class WorkerClient {
22
- private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {
23
- return { boxID, hasDeferOrStream };
22
+ private static _getMessageContext({ hasDeferOrStream = false, requestID }: RequestContext): MessageContext {
23
+ return { hasDeferOrStream, requestID };
24
24
  }
25
25
 
26
26
  private _cache: WorkerCachemap;
@@ -85,13 +85,13 @@ export default class WorkerClient {
85
85
  context: MaybeRequestContext = {},
86
86
  ): RequestContext {
87
87
  return {
88
- boxID: uuid(),
89
88
  debugManager: this._debugManager,
90
89
  fieldTypeMap: new Map(),
91
90
  operation,
92
91
  operationName: "",
93
92
  queryFiltered: false,
94
93
  request,
94
+ requestID: uuid(),
95
95
  whitelistHash: hashRequest(request),
96
96
  ...context,
97
97
  };
@@ -109,14 +109,14 @@ export default class WorkerClient {
109
109
  }
110
110
 
111
111
  const { _cacheMetadata, ...otherProps } = result;
112
- const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });
112
+ const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.requestID });
113
113
 
114
114
  if (_cacheMetadata) {
115
115
  response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
116
116
  }
117
117
 
118
118
  if (method === REQUEST) {
119
- const pending = this._pending.get(context.boxID);
119
+ const pending = this._pending.get(context.requestID);
120
120
 
121
121
  if (!pending) {
122
122
  return;
@@ -124,7 +124,7 @@ export default class WorkerClient {
124
124
 
125
125
  pending.resolve(response);
126
126
  } else if (method === SUBSCRIBE || context.hasDeferOrStream) {
127
- this._eventEmitter.emit(context.boxID, response);
127
+ this._eventEmitter.emit(context.requestID, response);
128
128
  }
129
129
  };
130
130
 
@@ -141,7 +141,7 @@ export default class WorkerClient {
141
141
  type: GRAPHQL_BOX,
142
142
  });
143
143
 
144
- this._pending.set(context.boxID, { resolve });
144
+ this._pending.set(context.requestID, { resolve });
145
145
  });
146
146
  }
147
147
 
@@ -153,7 +153,7 @@ export default class WorkerClient {
153
153
  type: GRAPHQL_BOX,
154
154
  });
155
155
 
156
- const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);
156
+ const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);
157
157
  return eventAsyncIterator.getIterator();
158
158
  } catch (error) {
159
159
  return { errors: castArray(error) };
@@ -171,7 +171,7 @@ export default class WorkerClient {
171
171
  type: GRAPHQL_BOX,
172
172
  });
173
173
 
174
- const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);
174
+ const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);
175
175
  return eventAsyncIterator.getIterator();
176
176
  } catch (error) {
177
177
  return { errors: castArray(error) };