@graphql-box/worker-client 2.3.2 → 2.4.0

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 a from"@babel/runtime/helpers/applyDecoratedDescriptor";import s from"lodash/isPlainObject";import c 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{QUERY as u,SUBSCRIPTION as i}from"@graphql-box/core";import{EventAsyncIterator as p,rehydrateCacheMetadata as h,dehydrateCacheMetadata as l}from"@graphql-box/helpers";import b from"eventemitter3";import{v1 as f}from"uuid";import{handleMessage as m}from"@cachemap/core-worker";import{forAwaitEach as d,isAsyncIterable as v}from"iterall";var g,y,x,w="request_executed";function j(){return function(r,n,o){var a,s=o.value;s&&(o.value=(a=t(c.mark((function r(){var n,o,a,u=this,i=arguments;return c.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=i.length,o=new Array(n),a=0;a<n;a++)o[a]=i[a];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(c.mark((function t(r){var n,a,i,p,h,l,b;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=o[2],a=n.debugManager,i=e(n,["debugManager"]),a){t.next=8;break}return t.t0=r,t.next=5,s.apply(u,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=a.now(),t.next=11,s.apply(u,o);case 11:h=t.sent,l=a.now(),b=l-p,r(h),a.emit("request_executed",{context:i,options:o[1],request:o[0],result:h,stats:{duration:b,endTime:l,startTime:p}});case 16: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 a.apply(this,arguments)}))}}function _(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 k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var O=(g=j(),y=j(),a((x=function(){function a(n){var u,i=this,p=n.cache,l=n.debugManager,f=n.worker;r(this,a),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",(u=t(c.mark((function t(r){var n,o,a,u,p,l,b,f,m;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,s(n)){t.next=3;break}return t.abrupt("return");case 3:if(a=(o=n).context,u=o.method,p=o.result,"graphqlBox"===o.type&&s(p)){t.next=6;break}return t.abrupt("return");case 6:if(l=p._cacheMetadata,b=e(p,["_cacheMetadata"]),f=k({},b),l&&(f._cacheMetadata=h(l)),"request"!==u){t.next=16;break}if(m=i._pending.get(a.boxID)){t.next=13;break}return t.abrupt("return");case 13:m.resolve(f),t.next=17;break;case 16:("subscribe"===u||a.hasDeferOrStream)&&i._eventEmitter.emit(a.boxID,f);case 17:case"end":return t.stop()}}),t)}))),function(e){return u.apply(this,arguments)})),this._cache=p,this._debugManager=l||null,this._eventEmitter=new b,this._worker=f,this._addEventListener()}var l,m,d,v,g;return n(a,[{key:"cache",get:function(){return this._cache}},{key:"request",value:(g=t(c.mark((function e(t){var r,n,o=arguments;return c.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.prev=2,e.abrupt("return",this._request(t,r,this._getRequestContext(u,t,n)));case 6:return e.prev=6,e.t0=e.catch(2),e.abrupt("return",{errors:e.t0});case 9:case"end":return e.stop()}}),e,this,[[2,6]])}))),function(e){return g.apply(this,arguments)})},{key:"subscribe",value:(v=t(c.mark((function e(t){var r,n=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.prev=1,e.next=4,this._subscribe(t,r,this._getRequestContext(i,t));case 4:return e.abrupt("return",e.sent);case 7:return e.prev=7,e.t0=e.catch(1),e.abrupt("return",Promise.reject(e.t0));case 10:case"end":return e.stop()}}),e,this,[[1,7]])}))),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 k({boxID:f(),debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t},r)}},{key:"_request",value:(d=t(c.mark((function e(t,r,n){var o,s=this;return c.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){s._worker.postMessage({context:a._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),s._pending.set(n.boxID,{resolve:e})})));case 3:return this._worker.postMessage({context:a._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o=new p(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",{errors:e.t0});case 11:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e,t,r){return d.apply(this,arguments)})},{key:"_subscribe",value:(m=t(c.mark((function e(t,r,n){var o;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:a._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new p(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",Promise.reject(e.t0));case 9:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t,r){return m.apply(this,arguments)})}],[{key:"init",value:(l=t(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=[],s(t)||r.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),t.cache||r.push(new TypeError("@graphql-box/client expected options.cache.")),t.worker||r.push(new TypeError("@graphql-box/client expected options.worker.")),n={cache:t.cache,worker:t.worker},e.prev=5,!t.debugManager){e.next=10;break}return e.next=9,t.debugManager();case 9:n.debugManager=e.sent;case 10:return e.abrupt("return",new a(n));case 13:return e.prev=13,e.t0=e.catch(5),e.abrupt("return",Promise.reject(e.t0));case 16:case"end":return e.stop()}}),e,null,[[5,13]])}))),function(e){return l.apply(this,arguments)})},{key:"_getMessageContext",value:function(e){var t=e.boxID,r=e.hasDeferOrStream;return{boxID:t,hasDeferOrStream:void 0!==r&&r}}}]),a}()).prototype,"_request",[g],Object.getOwnPropertyDescriptor(x.prototype,"_request"),x.prototype),a(x.prototype,"_subscribe",[y],Object.getOwnPropertyDescriptor(x.prototype,"_subscribe"),x.prototype),x);function q(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 M(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?q(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):q(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var P=self,D=P.addEventListener,E=P.postMessage;function C(){return(C=t(c.mark((function t(r,n,o,a,s){var u,i,p,h,b;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.request(r,o,a);case 2:if(u=t.sent,v(u)){t.next=9;break}return p=(i=u)._cacheMetadata,h=e(i,["_cacheMetadata"]),b=M({},h),p&&(b._cacheMetadata=l(p)),E({context:a,method:n,result:b,type:"graphqlBox"}),t.abrupt("return");case 9:d(u,(function(t){var r=t._cacheMetadata,o=M({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=l(r)),E({context:a,method:n,result:o,type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function I(){return(I=t(c.mark((function t(r,n,o,a,s){var u;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.subscribe(r,o,a);case 2:u=t.sent,v(u)?d(u,(function(t){var r=t._cacheMetadata,o=M({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=l(r)),E({context:a,method:n,result:o,type:"graphqlBox"})})):E({context:a,method:n,result:void 0,type:"graphqlBox"});case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function B(e,t){var r=e,n=r.context,o=r.method,a=r.options,s=r.request;"request"===o?function(e,t,r,n,o){C.apply(this,arguments)}(s,o,a,n,t):"subscribe"===o&&function(e,t,r,n,o){I.apply(this,arguments)}(s,o,a,n,t)}function S(e){return T.apply(this,arguments)}function T(){return(T=t(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(s(t)){var n=t.type;"graphqlBox"===n?B(t,r):"cachemap"===n&&r.cache&&m(t,r.cache)}},r=t.client,D("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default O;export{w as REQUEST_EXECUTED,S 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 o from"@babel/runtime/helpers/defineProperty";import a from"@babel/runtime/helpers/applyDecoratedDescriptor";import s from"lodash/isPlainObject";import c 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{QUERY as u,SUBSCRIPTION as i}from"@graphql-box/core";import{EventAsyncIterator as p,rehydrateCacheMetadata as h,dehydrateCacheMetadata as l}from"@graphql-box/helpers";import b from"eventemitter3";import{v1 as f}from"uuid";import{handleMessage as m}from"@cachemap/core-worker";import{forAwaitEach as d,isAsyncIterable as v}from"iterall";var g,y,x,w="request_executed";function j(){return function(r,n,o){var a,s=o.value;s&&(o.value=(a=t(c.mark((function r(){var n,o,a,u=this,i=arguments;return c.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=i.length,o=new Array(n),a=0;a<n;a++)o[a]=i[a];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(c.mark((function t(r){var n,a,i,p,h,l,b;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=o[2],a=n.debugManager,i=e(n,["debugManager"]),a){t.next=8;break}return t.t0=r,t.next=5,s.apply(u,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=a.now(),t.next=11,s.apply(u,o);case 11:h=t.sent,l=a.now(),b=l-p,r(h),a.emit("request_executed",{context:i,options:o[1],request:o[0],result:h,stats:{duration:b,endTime:l,startTime:p}});case 16: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 a.apply(this,arguments)}))}}function _(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 k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var O=(g=j(),y=j(),a((x=function(){function a(n){var u,i=this,p=n.cache,l=n.debugManager,f=n.worker;r(this,a),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",(u=t(c.mark((function t(r){var n,o,a,u,p,l,b,f,m;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,s(n)){t.next=3;break}return t.abrupt("return");case 3:if(a=(o=n).context,u=o.method,p=o.result,"graphqlBox"===o.type&&s(p)){t.next=6;break}return t.abrupt("return");case 6:if(l=p._cacheMetadata,b=e(p,["_cacheMetadata"]),f=k(k({},b),{},{requestID:a.boxID}),l&&(f._cacheMetadata=h(l)),"request"!==u){t.next=16;break}if(m=i._pending.get(a.boxID)){t.next=13;break}return t.abrupt("return");case 13:m.resolve(f),t.next=17;break;case 16:("subscribe"===u||a.hasDeferOrStream)&&i._eventEmitter.emit(a.boxID,f);case 17:case"end":return t.stop()}}),t)}))),function(e){return u.apply(this,arguments)})),this._cache=p,this._debugManager=l||null,this._eventEmitter=new b,this._worker=f,this._addEventListener()}var l,m,d,v,g;return n(a,[{key:"cache",get:function(){return this._cache}},{key:"request",value:(g=t(c.mark((function e(t){var r,n,o=arguments;return c.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.prev=2,e.abrupt("return",this._request(t,r,this._getRequestContext(u,t,n)));case 6:return e.prev=6,e.t0=e.catch(2),e.abrupt("return",{errors:e.t0});case 9:case"end":return e.stop()}}),e,this,[[2,6]])}))),function(e){return g.apply(this,arguments)})},{key:"subscribe",value:(v=t(c.mark((function e(t){var r,n=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.prev=1,e.next=4,this._subscribe(t,r,this._getRequestContext(i,t));case 4:return e.abrupt("return",e.sent);case 7:return e.prev=7,e.t0=e.catch(1),e.abrupt("return",Promise.reject(e.t0));case 10:case"end":return e.stop()}}),e,this,[[1,7]])}))),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 k({boxID:f(),debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t},r)}},{key:"_request",value:(d=t(c.mark((function e(t,r,n){var o,s=this;return c.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){s._worker.postMessage({context:a._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),s._pending.set(n.boxID,{resolve:e})})));case 3:return this._worker.postMessage({context:a._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o=new p(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",{errors:e.t0});case 11:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e,t,r){return d.apply(this,arguments)})},{key:"_subscribe",value:(m=t(c.mark((function e(t,r,n){var o;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:a._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new p(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",Promise.reject(e.t0));case 9:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t,r){return m.apply(this,arguments)})}],[{key:"init",value:(l=t(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=[],s(t)||r.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),t.cache||r.push(new TypeError("@graphql-box/client expected options.cache.")),t.worker||r.push(new TypeError("@graphql-box/client expected options.worker.")),n={cache:t.cache,worker:t.worker},e.prev=5,!t.debugManager){e.next=10;break}return e.next=9,t.debugManager();case 9:n.debugManager=e.sent;case 10:return e.abrupt("return",new a(n));case 13:return e.prev=13,e.t0=e.catch(5),e.abrupt("return",Promise.reject(e.t0));case 16:case"end":return e.stop()}}),e,null,[[5,13]])}))),function(e){return l.apply(this,arguments)})},{key:"_getMessageContext",value:function(e){var t=e.boxID,r=e.hasDeferOrStream;return{boxID:t,hasDeferOrStream:void 0!==r&&r}}}]),a}()).prototype,"_request",[g],Object.getOwnPropertyDescriptor(x.prototype,"_request"),x.prototype),a(x.prototype,"_subscribe",[y],Object.getOwnPropertyDescriptor(x.prototype,"_subscribe"),x.prototype),x);function q(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 M(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?q(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):q(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var P=self,D=P.addEventListener,E=P.postMessage;function I(){return(I=t(c.mark((function t(r,n,o,a,s){var u,i,p,h,b;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.request(r,o,a);case 2:if(u=t.sent,v(u)){t.next=9;break}return p=(i=u)._cacheMetadata,h=e(i,["_cacheMetadata"]),b=M({},h),p&&(b._cacheMetadata=l(p)),E({context:a,method:n,result:b,type:"graphqlBox"}),t.abrupt("return");case 9:d(u,(function(t){var r=t._cacheMetadata,o=M({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=l(r)),E({context:a,method:n,result:o,type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function C(){return(C=t(c.mark((function t(r,n,o,a,s){var u;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.subscribe(r,o,a);case 2:u=t.sent,v(u)?d(u,(function(t){var r=t._cacheMetadata,o=M({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=l(r)),E({context:a,method:n,result:o,type:"graphqlBox"})})):E({context:a,method:n,result:void 0,type:"graphqlBox"});case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function B(e,t){var r=e,n=r.context,o=r.method,a=r.options,s=r.request;"request"===o?function(e,t,r,n,o){I.apply(this,arguments)}(s,o,a,n,t):"subscribe"===o&&function(e,t,r,n,o){C.apply(this,arguments)}(s,o,a,n,t)}function S(e){return T.apply(this,arguments)}function T(){return(T=t(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(s(t)){var n=t.type;"graphqlBox"===n?B(t,r):"cachemap"===n&&r.cache&&m(t,r.cache)}},r=t.client,D("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default O;export{w as REQUEST_EXECUTED,S 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\";\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 } 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 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_EXECUTED, {\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 MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\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 const constructorOptions: ConstructorOptions = {\n cache: options.cache,\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\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({ cache, debugManager, worker }: ConstructorOptions) {\n this._cache = cache;\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\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 ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\n\n const { context, method, result, type } = data as MessageResponsePayload;\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = { ...otherProps };\n if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n if (!pending) return;\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 (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\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 Promise.reject(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 } 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, 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, 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 forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n if (_cacheMetadata) result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n postMessage({ context, method, result, type: GRAPHQL_BOX });\n });\n } else {\n postMessage({ context, method, result: undefined, 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)) return;\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","result","endTime","duration","emit","context","options","request","stats","reject","WorkerClient","cache","worker","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","rehydrateCacheMetadata","pending","_pending","get","boxID","hasDeferOrStream","_eventEmitter","_cache","_debugManager","EventEmitter","_worker","_addEventListener","this","_request","_getRequestContext","QUERY","errors","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","uuid","fieldTypeMap","operationName","queryFiltered","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","push","TypeError","constructorOptions","self","client","requestResult","isAsyncIterable","dehydrateCacheMetadata","forAwaitEach","subscribe","subscribeResult","undefined","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_EXECUTED = \"request_executed\";\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 } 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 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_EXECUTED, {\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 MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\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 const constructorOptions: ConstructorOptions = {\n cache: options.cache,\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\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({ cache, debugManager, worker }: ConstructorOptions) {\n this._cache = cache;\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\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 ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\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 = { ...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 (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\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 Promise.reject(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 } 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, 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, 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 forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n if (_cacheMetadata) result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n postMessage({ context, method, result, type: GRAPHQL_BOX });\n });\n } else {\n postMessage({ context, method, result: undefined, 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)) return;\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","result","endTime","duration","emit","context","options","request","stats","reject","WorkerClient","cache","worker","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","requestID","boxID","rehydrateCacheMetadata","pending","_pending","get","hasDeferOrStream","_eventEmitter","_cache","_debugManager","EventEmitter","_worker","_addEventListener","this","_request","_getRequestContext","QUERY","errors","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","uuid","fieldTypeMap","operationName","queryFiltered","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","push","TypeError","constructorOptions","self","client","requestResult","isAsyncIterable","dehydrateCacheMetadata","forAwaitEach","subscribe","subscribeResult","undefined","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","handleCachemapMessage"],"mappings":"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"}
@@ -1,23 +1,23 @@
1
1
  -----------------------------
2
2
  Rollup File Analysis
3
3
  -----------------------------
4
- bundle size: 23.171 KB
5
- original size: 12.043 KB
4
+ bundle size: 23.293 KB
5
+ original size: 12.118 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: 56.32 %
12
- rendered size: 13.049 KB
13
- original size: 5.65 KB
11
+ bundle space: 56.54 %
12
+ rendered size: 13.171 KB
13
+ original size: 5.725 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.57 %
20
+ bundle space: 26.43 %
21
21
  rendered size: 6.156 KB
22
22
  original size: 3.217 KB
23
23
  code reduction: 0 %
@@ -26,7 +26,7 @@ dependents: 1
26
26
 
27
27
  ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
28
28
  file: /src/debug/log-request/index.ts
29
- bundle space: 16.34 %
29
+ bundle space: 16.25 %
30
30
  rendered size: 3.786 KB
31
31
  original size: 1.244 KB
32
32
  code reduction: 0 %
@@ -35,7 +35,7 @@ dependents: 1
35
35
 
36
36
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
37
37
  file: /src/consts/index.ts
38
- bundle space: 0.78 %
38
+ bundle space: 0.77 %
39
39
  rendered size: 180 Bytes
40
40
  original size: 238 Bytes
41
41
  code reduction: 24.37 %
@@ -91,19 +91,30 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
91
91
  result,
92
92
  type
93
93
  } = data;
94
- if (type !== _consts.GRAPHQL_BOX || !(0, _isPlainObject2.default)(result)) return;
94
+
95
+ if (type !== _consts.GRAPHQL_BOX || !(0, _isPlainObject2.default)(result)) {
96
+ return;
97
+ }
98
+
95
99
  const {
96
100
  _cacheMetadata,
97
101
  ...otherProps
98
102
  } = result;
99
- const response = { ...otherProps
103
+ const response = { ...otherProps,
104
+ requestID: context.boxID
100
105
  };
101
- if (_cacheMetadata) response._cacheMetadata = (0, _helpers.rehydrateCacheMetadata)(_cacheMetadata);
106
+
107
+ if (_cacheMetadata) {
108
+ response._cacheMetadata = (0, _helpers.rehydrateCacheMetadata)(_cacheMetadata);
109
+ }
102
110
 
103
111
  if (method === _consts.REQUEST) {
104
112
  const pending = this._pending.get(context.boxID);
105
113
 
106
- if (!pending) return;
114
+ if (!pending) {
115
+ return;
116
+ }
117
+
107
118
  pending.resolve(response);
108
119
  } else if (method === _consts.SUBSCRIBE || context.hasDeferOrStream) {
109
120
  this._eventEmitter.emit(context.boxID, response);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","init","options","errors","push","TypeError","cache","worker","constructorOptions","debugManager","error","Promise","reject","_getMessageContext","boxID","hasDeferOrStream","constructor","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","_cache","_debugManager","EventEmitter","_worker","_addEventListener","request","_request","_getRequestContext","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\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 const constructorOptions: ConstructorOptions = {\n cache: options.cache,\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\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({ cache, debugManager, worker }: ConstructorOptions) {\n this._cache = cache;\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\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 ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\n\n const { context, method, result, type } = data as MessageResponsePayload;\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = { ...otherProps };\n if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n if (!pending) return;\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 (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\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 Promise.reject(error);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","init","options","errors","push","TypeError","cache","worker","constructorOptions","debugManager","error","Promise","reject","_getMessageContext","boxID","hasDeferOrStream","constructor","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","requestID","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","_cache","_debugManager","EventEmitter","_worker","_addEventListener","request","_request","_getRequestContext","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\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 const constructorOptions: ConstructorOptions = {\n cache: options.cache,\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\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({ cache, debugManager, worker }: ConstructorOptions) {\n this._cache = cache;\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\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 ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\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 = { ...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 (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\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 Promise.reject(error);\n }\n }\n}\n"],"file":"index.js"}
@@ -78,19 +78,30 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
78
78
  result,
79
79
  type
80
80
  } = data;
81
- if (type !== GRAPHQL_BOX || !_isPlainObject(result)) return;
81
+
82
+ if (type !== GRAPHQL_BOX || !_isPlainObject(result)) {
83
+ return;
84
+ }
85
+
82
86
  const {
83
87
  _cacheMetadata,
84
88
  ...otherProps
85
89
  } = result;
86
- const response = { ...otherProps
90
+ const response = { ...otherProps,
91
+ requestID: context.boxID
87
92
  };
88
- if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
93
+
94
+ if (_cacheMetadata) {
95
+ response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
96
+ }
89
97
 
90
98
  if (method === REQUEST) {
91
99
  const pending = this._pending.get(context.boxID);
92
100
 
93
- if (!pending) return;
101
+ if (!pending) {
102
+ return;
103
+ }
104
+
94
105
  pending.resolve(response);
95
106
  } else if (method === SUBSCRIBE || context.hasDeferOrStream) {
96
107
  this._eventEmitter.emit(context.boxID, response);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/index.ts"],"names":["QUERY","SUBSCRIPTION","EventAsyncIterator","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","WorkerClient","init","options","errors","push","TypeError","cache","worker","constructorOptions","debugManager","error","Promise","reject","_getMessageContext","boxID","hasDeferOrStream","constructor","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","pending","_pending","get","resolve","_eventEmitter","emit","_cache","_debugManager","_worker","_addEventListener","request","_request","_getRequestContext","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","postMessage","set","eventAsyncIterator","getIterator"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\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 const constructorOptions: ConstructorOptions = {\n cache: options.cache,\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\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({ cache, debugManager, worker }: ConstructorOptions) {\n this._cache = cache;\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\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 ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\n\n const { context, method, result, type } = data as MessageResponsePayload;\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = { ...otherProps };\n if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n if (!pending) return;\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 (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\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 Promise.reject(error);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["QUERY","SUBSCRIPTION","EventAsyncIterator","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","WorkerClient","init","options","errors","push","TypeError","cache","worker","constructorOptions","debugManager","error","Promise","reject","_getMessageContext","boxID","hasDeferOrStream","constructor","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","requestID","pending","_pending","get","resolve","_eventEmitter","emit","_cache","_debugManager","_worker","_addEventListener","request","_request","_getRequestContext","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","postMessage","set","eventAsyncIterator","getIterator"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\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 const constructorOptions: ConstructorOptions = {\n cache: options.cache,\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\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({ cache, debugManager, worker }: ConstructorOptions) {\n this._cache = cache;\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\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 ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\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 = { ...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 (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\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 Promise.reject(error);\n }\n }\n}\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAEL,mBAAmB,EACnB,kBAAkB,EAGlB,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,kBAAkB,EAKlB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,YAAY;WACX,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA+BrE,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAS;gBAEZ,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,kBAAkB;IAQ/D,IAAI,KAAK,IAAI,cAAc,CAE1B;IAEY,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,EAAE,OAAO,GAAE,mBAAwB;;;IAQxF,SAAS,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAUzD,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,UAAU,CAkBhB;YAGY,QAAQ;YAgCR,UAAU;CAoBzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAEL,mBAAmB,EACnB,kBAAkB,EAGlB,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,kBAAkB,EAKlB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,YAAY;WACX,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA+BrE,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAS;gBAEZ,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,kBAAkB;IAQ/D,IAAI,KAAK,IAAI,cAAc,CAE1B;IAEY,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,EAAE,OAAO,GAAE,mBAAwB;;;IAQxF,SAAS,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAUzD,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,UAAU,CA2BhB;YAGY,QAAQ;YAgCR,UAAU;CAoBzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-box/worker-client",
3
- "version": "2.3.2",
3
+ "version": "2.4.0",
4
4
  "description": "The GraphQL Box web worker client module.",
5
5
  "author": "Dylan Aubrey <dylanaubrey@gmail.com>",
6
6
  "license": "MIT",
package/src/main/index.ts CHANGED
@@ -124,15 +124,24 @@ export default class WorkerClient {
124
124
  if (!isPlainObject(data)) return;
125
125
 
126
126
  const { context, method, result, type } = data as MessageResponsePayload;
127
- if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;
127
+
128
+ if (type !== GRAPHQL_BOX || !isPlainObject(result)) {
129
+ return;
130
+ }
128
131
 
129
132
  const { _cacheMetadata, ...otherProps } = result;
130
- const response: MaybeRequestResult = { ...otherProps };
131
- if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
133
+ const response: MaybeRequestResult = { ...otherProps, requestID: context.boxID };
134
+
135
+ if (_cacheMetadata) {
136
+ response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
137
+ }
132
138
 
133
139
  if (method === REQUEST) {
134
140
  const pending = this._pending.get(context.boxID);
135
- if (!pending) return;
141
+
142
+ if (!pending) {
143
+ return;
144
+ }
136
145
 
137
146
  pending.resolve(response);
138
147
  } else if (method === SUBSCRIBE || context.hasDeferOrStream) {