@graphql-box/worker-client 2.4.4 → 2.5.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(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};
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"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{QUERY as u,SUBSCRIPTION as p}from"@graphql-box/core";import{EventAsyncIterator as h,rehydrateCacheMetadata as l,dehydrateCacheMetadata as b}from"@graphql-box/helpers";import f from"eventemitter3";import{v1 as m}from"uuid";import{handleMessage as d}from"@cachemap/core-worker";import{forAwaitEach as g,isAsyncIterable as v}from"iterall";var y,x,w,j="request_executed";function _(){return function(r,n,o){var a,s=o.value;s&&(o.value=(a=t(i.mark((function r(){var n,o,a,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),a=0;a<n;a++)o[a]=u[a];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(i.mark((function t(r){var n,a,u,p,h,l,b;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=o[2],a=n.debugManager,u=e(n,["debugManager"]),a){t.next=8;break}return t.t0=r,t.next=5,s.apply(c,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(c,o);case 11:h=t.sent,l=a.now(),b=l-p,r(h),a.emit("request_executed",{context:u,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 k(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 O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?k(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):k(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var q=(y=_(),x=_(),a((w=function(){function a(n){var c,u=this,p=n.cache,h=n.debugManager,b=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",(c=t(i.mark((function t(r){var n,o,a,c,p,h,b,f,m;return i.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,c=o.method,p=o.result,"graphqlBox"===o.type&&s(p)){t.next=6;break}return t.abrupt("return");case 6:if(h=p._cacheMetadata,b=e(p,["_cacheMetadata"]),f=O(O({},b),{},{requestID:a.boxID}),h&&(f._cacheMetadata=l(h)),"request"!==c){t.next=16;break}if(m=u._pending.get(a.boxID)){t.next=13;break}return t.abrupt("return");case 13:m.resolve(f),t.next=17;break;case 16:("subscribe"===c||a.hasDeferOrStream)&&u._eventEmitter.emit(a.boxID,f);case 17:case"end":return t.stop()}}),t)}))),function(e){return c.apply(this,arguments)})),this._cache=p,this._debugManager=h||null,this._eventEmitter=new f,this._worker=b,this._addEventListener()}var b,d,g,v,y;return n(a,[{key:"cache",get:function(){return this._cache}},{key:"request",value:(y=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 y.apply(this,arguments)})},{key:"subscribe",value:(v=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(p,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 O({boxID:m(),debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t},r)}},{key:"_request",value:(g=t(i.mark((function e(t,r,n){var o,s=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){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 h(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:a._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new h(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:"init",value:(b=t(i.mark((function e(t){var r,n;return i.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 b.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",[y],Object.getOwnPropertyDescriptor(w.prototype,"_request"),w.prototype),a(w.prototype,"_subscribe",[x],Object.getOwnPropertyDescriptor(w.prototype,"_subscribe"),w.prototype),w);function M(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 D(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?M(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):M(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var P=self,E=P.addEventListener,I=P.postMessage;function C(){return(C=t(i.mark((function t(r,n,o,a,s){var c,u,p,h,l;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.request(r,o,a);case 2:if(c=t.sent,v(c)){t.next=9;break}return p=(u=c)._cacheMetadata,h=e(u,["_cacheMetadata"]),l=D({},h),p&&(l._cacheMetadata=b(p)),I({context:a,method:n,result:l,type:"graphqlBox"}),t.abrupt("return");case 9:g(c,(function(t){var r=t._cacheMetadata,o=D({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=b(r)),I({context:a,method:n,result:o,type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function B(){return(B=t(i.mark((function t(r,n,o,a,s){var c;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.subscribe(r,o,a);case 2:c=t.sent,v(c)?g(c,(function(t){var r=t._cacheMetadata,o=D({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=b(r)),I({context:a,method:n,result:o,type:"graphqlBox"})})):I({context:a,method:n,result:void 0,type:"graphqlBox"});case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function S(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){B.apply(this,arguments)}(s,o,a,n,t)}function T(e){return L.apply(this,arguments)}function L(){return(L=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(s(t)){var n=t.type;"graphqlBox"===n?S(t,r):"cachemap"===n&&r.cache&&d(t,r.cache)}},r=t.client,E("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default q;export{j as REQUEST_EXECUTED,T 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\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
+ {"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 { 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 {\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 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 ...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 (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 } 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","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","uuid","fieldTypeMap","operationName","queryFiltered","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","errors","_castArray","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.293 KB
5
- original size: 12.118 KB
4
+ bundle size: 22.738 KB
5
+ original size: 11.79 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.54 %
12
- rendered size: 13.171 KB
13
- original size: 5.725 KB
11
+ bundle space: 55.48 %
12
+ rendered size: 12.616 KB
13
+ original size: 5.397 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.43 %
20
+ bundle space: 27.07 %
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.25 %
29
+ bundle space: 16.65 %
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.77 %
38
+ bundle space: 0.79 %
39
39
  rendered size: 180 Bytes
40
40
  original size: 238 Bytes
41
41
  code reduction: 24.37 %
@@ -15,6 +15,8 @@ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/
15
15
 
16
16
  var _isPlainObject2 = _interopRequireDefault(require("lodash/isPlainObject"));
17
17
 
18
+ var _castArray2 = _interopRequireDefault(require("lodash/castArray"));
19
+
18
20
  var _core = require("@graphql-box/core");
19
21
 
20
22
  var _helpers = require("@graphql-box/helpers");
@@ -133,21 +135,11 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
133
135
  }
134
136
 
135
137
  async request(request, options = {}, context = {}) {
136
- try {
137
- return this._request(request, options, this._getRequestContext(_core.QUERY, request, context));
138
- } catch (error) {
139
- return {
140
- errors: error
141
- };
142
- }
138
+ return this._request(request, options, this._getRequestContext(_core.QUERY, request, context));
143
139
  }
144
140
 
145
141
  async subscribe(request, options = {}) {
146
- try {
147
- return await this._subscribe(request, options, this._getRequestContext(_core.SUBSCRIPTION, request));
148
- } catch (error) {
149
- return Promise.reject(error);
150
- }
142
+ return this._subscribe(request, options, this._getRequestContext(_core.SUBSCRIPTION, request));
151
143
  }
152
144
 
153
145
  _addEventListener() {
@@ -195,9 +187,9 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
195
187
 
196
188
  const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.boxID);
197
189
  return eventAsyncIterator.getIterator();
198
- } catch (errors) {
190
+ } catch (error) {
199
191
  return {
200
- errors
192
+ errors: (0, _castArray2.default)(error)
201
193
  };
202
194
  }
203
195
  }
@@ -215,7 +207,9 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
215
207
  const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.boxID);
216
208
  return eventAsyncIterator.getIterator();
217
209
  } catch (error) {
218
- return Promise.reject(error);
210
+ return {
211
+ errors: (0, _castArray2.default)(error)
212
+ };
219
213
  }
220
214
  }
221
215
 
@@ -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","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"}
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 { 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 {\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 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 ...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 (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,6 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _applyDecoratedDescriptor from "@babel/runtime/helpers/applyDecoratedDescriptor";
3
3
  import _isPlainObject from "lodash/isPlainObject";
4
+ import _castArray from "lodash/castArray";
4
5
 
5
6
  var _dec, _dec2, _class;
6
7
 
@@ -121,21 +122,11 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
121
122
  }
122
123
 
123
124
  async request(request, options = {}, context = {}) {
124
- try {
125
- return this._request(request, options, this._getRequestContext(QUERY, request, context));
126
- } catch (error) {
127
- return {
128
- errors: error
129
- };
130
- }
125
+ return this._request(request, options, this._getRequestContext(QUERY, request, context));
131
126
  }
132
127
 
133
128
  async subscribe(request, options = {}) {
134
- try {
135
- return await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));
136
- } catch (error) {
137
- return Promise.reject(error);
138
- }
129
+ return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));
139
130
  }
140
131
 
141
132
  _addEventListener() {
@@ -183,9 +174,9 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
183
174
 
184
175
  const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);
185
176
  return eventAsyncIterator.getIterator();
186
- } catch (errors) {
177
+ } catch (error) {
187
178
  return {
188
- errors
179
+ errors: _castArray(error)
189
180
  };
190
181
  }
191
182
  }
@@ -203,7 +194,9 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
203
194
  const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);
204
195
  return eventAsyncIterator.getIterator();
205
196
  } catch (error) {
206
- return Promise.reject(error);
197
+ return {
198
+ errors: _castArray(error)
199
+ };
207
200
  }
208
201
  }
209
202
 
@@ -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","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":";;;;;;;AACA,SAIEA,KAJF,EAOEC,YAPF,QASO,mBATP;AAUA,SAASC,kBAAT,EAA6BC,sBAA7B,QAA2D,sBAA3D;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;IAUqBC,Y,WA6HlBD,UAAU,E,UAgCVA,UAAU,E,YA7JE,MAAMC,YAAN,CAAmB;AACR,eAAJC,IAAI,CAACC,OAAD,EAA8C;AACpE,UAAMC,MAAmB,GAAG,EAA5B;;AAEA,QAAI,CAAC,eAAcD,OAAd,CAAL,EAA6B;AAC3BC,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,4DAAd,CAAZ;AACD;;AAED,QAAI,CAACH,OAAO,CAACI,KAAb,EAAoB;AAClBH,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,6CAAd,CAAZ;AACD;;AAED,QAAI,CAACH,OAAO,CAACK,MAAb,EAAqB;AACnBJ,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,8CAAd,CAAZ;AACD;;AAED,UAAMG,kBAAsC,GAAG;AAC7CF,MAAAA,KAAK,EAAEJ,OAAO,CAACI,KAD8B;AAE7CC,MAAAA,MAAM,EAAEL,OAAO,CAACK;AAF6B,KAA/C;;AAKA,QAAI;AACF,UAAIL,OAAO,CAACO,YAAZ,EAA0B;AACxBD,QAAAA,kBAAkB,CAACC,YAAnB,GAAkC,MAAMP,OAAO,CAACO,YAAR,EAAxC;AACD;;AAED,aAAO,IAAIT,YAAJ,CAAiBQ,kBAAjB,CAAP;AACD,KAND,CAME,OAAOE,KAAP,EAAc;AACd,aAAOC,OAAO,CAACC,MAAR,CAAeF,KAAf,CAAP;AACD;AACF;;AAEgC,SAAlBG,kBAAkB,CAAC;AAAEC,IAAAA,KAAF;AAASC,IAAAA,gBAAgB,GAAG;AAA5B,GAAD,EAAsE;AACrG,WAAO;AAAED,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAP;AACD;;AAQDC,EAAAA,WAAW,CAAC;AAAEV,IAAAA,KAAF;AAASG,IAAAA,YAAT;AAAuBF,IAAAA;AAAvB,GAAD,EAAsD;AAAA;;AAAA;;AAAA;;AAAA,sCAH9B,IAAIU,GAAJ,EAG8B;;AAAA;;AAAA,wCAsD5C,OAAO;AAAEC,MAAAA;AAAF,KAAP,KAAiD;AACpE,UAAI,CAAC,eAAcA,IAAd,CAAL,EAA0B;AAE1B,YAAM;AAAEC,QAAAA,OAAF;AAAWC,QAAAA,MAAX;AAAmBC,QAAAA,MAAnB;AAA2BC,QAAAA;AAA3B,UAAoCJ,IAA1C;;AAEA,UAAII,IAAI,KAAK3B,WAAT,IAAwB,CAAC,eAAc0B,MAAd,CAA7B,EAAoD;AAClD;AACD;;AAED,YAAM;AAAEE,QAAAA,cAAF;AAAkB,WAAGC;AAArB,UAAoCH,MAA1C;AACA,YAAMI,QAA4B,GAAG,EAAE,GAAGD,UAAL;AAAiBE,QAAAA,SAAS,EAAEP,OAAO,CAACL;AAApC,OAArC;;AAEA,UAAIS,cAAJ,EAAoB;AAClBE,QAAAA,QAAQ,CAACF,cAAT,GAA0BhC,sBAAsB,CAACgC,cAAD,CAAhD;AACD;;AAED,UAAIH,MAAM,KAAKvB,OAAf,EAAwB;AACtB,cAAM8B,OAAO,GAAG,KAAKC,QAAL,CAAcC,GAAd,CAAkBV,OAAO,CAACL,KAA1B,CAAhB;;AAEA,YAAI,CAACa,OAAL,EAAc;AACZ;AACD;;AAEDA,QAAAA,OAAO,CAACG,OAAR,CAAgBL,QAAhB;AACD,OARD,MAQO,IAAIL,MAAM,KAAKtB,SAAX,IAAwBqB,OAAO,CAACJ,gBAApC,EAAsD;AAC3D,aAAKgB,aAAL,CAAmBC,IAAnB,CAAwBb,OAAO,CAACL,KAAhC,EAAuCW,QAAvC;AACD;AACF,KAjFgE;;AAC/D,SAAKQ,MAAL,GAAc3B,KAAd;AACA,SAAK4B,aAAL,GAAqBzB,YAAY,IAAI,IAArC;AACA,SAAKsB,aAAL,GAAqB,IAAIvC,YAAJ,EAArB;AACA,SAAK2C,OAAL,GAAe5B,MAAf;;AACA,SAAK6B,iBAAL;AACD;;AAEQ,MAAL9B,KAAK,GAAmB;AAC1B,WAAO,KAAK2B,MAAZ;AACD;;AAEmB,QAAPI,OAAO,CAACA,OAAD,EAAkBnC,OAAuB,GAAG,EAA5C,EAAgDiB,OAA4B,GAAG,EAA/E,EAAmF;AACrG,QAAI;AACF,aAAO,KAAKmB,QAAL,CAAcD,OAAd,EAAuBnC,OAAvB,EAAgC,KAAKqC,kBAAL,CAAwBnD,KAAxB,EAA+BiD,OAA/B,EAAwClB,OAAxC,CAAhC,CAAP;AACD,KAFD,CAEE,OAAOT,KAAP,EAAc;AACd,aAAO;AAAEP,QAAAA,MAAM,EAAEO;AAAV,OAAP;AACD;AACF;;AAEqB,QAAT8B,SAAS,CACpBH,OADoB,EAEpBnC,OAAuB,GAAG,EAFN,EAGoC;AACxD,QAAI;AACF,aAAQ,MAAM,KAAKuC,UAAL,CAAgBJ,OAAhB,EAAyBnC,OAAzB,EAAkC,KAAKqC,kBAAL,CAAwBlD,YAAxB,EAAsCgD,OAAtC,CAAlC,CAAd;AAGD,KAJD,CAIE,OAAO3B,KAAP,EAAc;AACd,aAAOC,OAAO,CAACC,MAAR,CAAeF,KAAf,CAAP;AACD;AACF;;AAEO0B,EAAAA,iBAAiB,GAAS;AAChC,SAAKD,OAAL,CAAaO,gBAAb,CAA8B9C,OAA9B,EAAuC,KAAK+C,UAA5C;AACD;;AAEOJ,EAAAA,kBAAkB,CACxBK,SADwB,EAExBP,OAFwB,EAGxBlB,OAA4B,GAAG,EAHP,EAIR;AAChB,WAAO;AACLL,MAAAA,KAAK,EAAEpB,IAAI,EADN;AAELe,MAAAA,YAAY,EAAE,KAAKyB,aAFd;AAGLW,MAAAA,YAAY,EAAE,IAAI5B,GAAJ,EAHT;AAIL2B,MAAAA,SAJK;AAKLE,MAAAA,aAAa,EAAE,EALV;AAMLC,MAAAA,aAAa,EAAE,KANV;AAOLV,MAAAA,OAPK;AAQL,SAAGlB;AARE,KAAP;AAUD;;AAgCqB,QAARmB,QAAQ,CAACD,OAAD,EAAkBnC,OAAlB,EAA2CiB,OAA3C,EAAoE;AACxF,QAAI;AACF,UAAI,CAACA,OAAO,CAACJ,gBAAb,EAA+B;AAC7B,eAAO,IAAIJ,OAAJ,CAAamB,OAAD,IAA8B;AAC/C,eAAKK,OAAL,CAAaa,WAAb,CAAyB;AACvB7B,YAAAA,OAAO,EAAEnB,YAAY,CAACa,kBAAb,CAAgCM,OAAhC,CADc;AAEvBC,YAAAA,MAAM,EAAEvB,OAFe;AAGvBK,YAAAA,OAHuB;AAIvBmC,YAAAA,OAJuB;AAKvBf,YAAAA,IAAI,EAAE3B;AALiB,WAAzB;;AAQA,eAAKiC,QAAL,CAAcqB,GAAd,CAAkB9B,OAAO,CAACL,KAA1B,EAAiC;AAAEgB,YAAAA;AAAF,WAAjC;AACD,SAVM,CAAP;AAWD;;AAED,WAAKK,OAAL,CAAaa,WAAb,CAAyB;AACvB7B,QAAAA,OAAO,EAAEnB,YAAY,CAACa,kBAAb,CAAgCM,OAAhC,CADc;AAEvBC,QAAAA,MAAM,EAAEvB,OAFe;AAGvBK,QAAAA,OAHuB;AAIvBmC,QAAAA,OAJuB;AAKvBf,QAAAA,IAAI,EAAE3B;AALiB,OAAzB;;AAQA,YAAMuD,kBAAkB,GAAG,IAAI5D,kBAAJ,CAA2C,KAAKyC,aAAhD,EAA+DZ,OAAO,CAACL,KAAvE,CAA3B;AACA,aAAOoC,kBAAkB,CAACC,WAAnB,EAAP;AACD,KAzBD,CAyBE,OAAOhD,MAAP,EAAe;AACf,aAAO;AAAEA,QAAAA;AAAF,OAAP;AACD;AACF;;AAGuB,QAAVsC,UAAU,CACtBJ,OADsB,EAEtBnC,OAFsB,EAGtBiB,OAHsB,EAIkC;AACxD,QAAI;AACF,WAAKgB,OAAL,CAAaa,WAAb,CAAyB;AACvB7B,QAAAA,OAAO,EAAEnB,YAAY,CAACa,kBAAb,CAAgCM,OAAhC,CADc;AAEvBC,QAAAA,MAAM,EAAEtB,SAFe;AAGvBI,QAAAA,OAHuB;AAIvBmC,QAAAA,OAJuB;AAKvBf,QAAAA,IAAI,EAAE3B;AALiB,OAAzB;;AAQA,YAAMuD,kBAAkB,GAAG,IAAI5D,kBAAJ,CAA2C,KAAKyC,aAAhD,EAA+DZ,OAAO,CAACL,KAAvE,CAA3B;AACA,aAAOoC,kBAAkB,CAACC,WAAnB,EAAP;AACD,KAXD,CAWE,OAAOzC,KAAP,EAAc;AACd,aAAOC,OAAO,CAACC,MAAR,CAAeF,KAAf,CAAP;AACD;AACF;;AAjL+B,C;SAAbV,Y","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
+ {"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 { 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 {\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 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 ...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 (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"}
@@ -12,9 +12,11 @@ export default class WorkerClient {
12
12
  constructor({ cache, debugManager, worker }: ConstructorOptions);
13
13
  get cache(): WorkerCachemap;
14
14
  request(request: string, options?: RequestOptions, context?: MaybeRequestContext): Promise<MaybeRequestResult | AsyncIterableIterator<MaybeRequestResult | undefined> | {
15
- errors: any;
15
+ errors: any[];
16
+ }>;
17
+ subscribe(request: string, options?: RequestOptions): Promise<AsyncIterableIterator<MaybeRequestResult | undefined> | {
18
+ errors: any[];
16
19
  }>;
17
- subscribe(request: string, options?: RequestOptions): Promise<AsyncIterator<MaybeRequestResult | undefined>>;
18
20
  private _addEventListener;
19
21
  private _getRequestContext;
20
22
  private _onMessage;
@@ -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,CA2BhB;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;;;IAIxF,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;;;IAIpE,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,UAAU,CA2BhB;YAGY,QAAQ;YAgCR,UAAU;CAgBzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-box/worker-client",
3
- "version": "2.4.4",
3
+ "version": "2.5.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
@@ -11,7 +11,7 @@ import {
11
11
  } from "@graphql-box/core";
12
12
  import { EventAsyncIterator, rehydrateCacheMetadata } from "@graphql-box/helpers";
13
13
  import EventEmitter from "eventemitter3";
14
- import { isPlainObject } from "lodash";
14
+ import { castArray, isPlainObject } from "lodash";
15
15
  import { v1 as uuid } from "uuid";
16
16
  import { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from "../consts";
17
17
  import logRequest from "../debug/log-request";
@@ -79,24 +79,11 @@ export default class WorkerClient {
79
79
  }
80
80
 
81
81
  public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {
82
- try {
83
- return this._request(request, options, this._getRequestContext(QUERY, request, context));
84
- } catch (error) {
85
- return { errors: error };
86
- }
82
+ return this._request(request, options, this._getRequestContext(QUERY, request, context));
87
83
  }
88
84
 
89
- public async subscribe(
90
- request: string,
91
- options: RequestOptions = {},
92
- ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {
93
- try {
94
- return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<
95
- MaybeRequestResult | undefined
96
- >;
97
- } catch (error) {
98
- return Promise.reject(error);
99
- }
85
+ public async subscribe(request: string, options: RequestOptions = {}) {
86
+ return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));
100
87
  }
101
88
 
102
89
  private _addEventListener(): void {
@@ -176,17 +163,13 @@ export default class WorkerClient {
176
163
 
177
164
  const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);
178
165
  return eventAsyncIterator.getIterator();
179
- } catch (errors) {
180
- return { errors };
166
+ } catch (error) {
167
+ return { errors: castArray(error) };
181
168
  }
182
169
  }
183
170
 
184
171
  @logRequest()
185
- private async _subscribe(
186
- request: string,
187
- options: RequestOptions,
188
- context: RequestContext,
189
- ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {
172
+ private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {
190
173
  try {
191
174
  this._worker.postMessage({
192
175
  context: WorkerClient._getMessageContext(context),
@@ -199,7 +182,7 @@ export default class WorkerClient {
199
182
  const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);
200
183
  return eventAsyncIterator.getIterator();
201
184
  } catch (error) {
202
- return Promise.reject(error);
185
+ return { errors: castArray(error) };
203
186
  }
204
187
  }
205
188
  }