@graphql-box/worker-client 3.0.0 → 3.3.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"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 O(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?O(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):O(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;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=k(k({},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)}));var p=[];if(s(n)||p.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),n.cache||p.push(new TypeError("@graphql-box/client expected options.cache.")),n.worker||p.push(new TypeError("@graphql-box/client expected options.worker.")),p.length)throw p;this._cache=n.cache,this._debugManager=n.debugManager?n.debugManager():null,this._eventEmitter=new f,this._worker=n.worker,this._addEventListener()}var b,d,g,v;return n(a,[{key:"cache",get:function(){return this._cache}},{key:"request",value:(v=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 v.apply(this,arguments)})},{key:"subscribe",value:(g=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 g.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:m(),debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t},r)}},{key:"_request",value:(d=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 d.apply(this,arguments)})},{key:"_subscribe",value:(b=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 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};
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{hashRequest as h,EventAsyncIterator as l,deserializeErrors as b,rehydrateCacheMetadata as f,dehydrateCacheMetadata as m,serializeErrors as d}from"@graphql-box/helpers";import g from"eventemitter3";import{v1 as v}from"uuid";import{handleMessage as y}from"@cachemap/core-worker";import{forAwaitEach as x,isAsyncIterable as w}from"iterall";var j,_,O,k="request_executed";function q(){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 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=(j=q(),_=q(),a((O=function(){function a(n){var c,u=this;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,l,m,d;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,l=e(p,["_cacheMetadata"]),m=b(D(D({},l),{},{requestID:a.boxID})),h&&(m._cacheMetadata=f(h)),"request"!==c){t.next=16;break}if(d=u._pending.get(a.boxID)){t.next=13;break}return t.abrupt("return");case 13:d.resolve(m),t.next=17;break;case 16:("subscribe"===c||a.hasDeferOrStream)&&u._eventEmitter.emit(a.boxID,m);case 17:case"end":return t.stop()}}),t)}))),function(e){return c.apply(this,arguments)}));var p=[];if(s(n)||p.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),n.cache||p.push(new TypeError("@graphql-box/client expected options.cache.")),n.worker||p.push(new TypeError("@graphql-box/client expected options.worker.")),p.length)throw p;this._cache=n.cache,this._debugManager=n.debugManager?n.debugManager():null,this._eventEmitter=new g,this._worker=n.worker,this._addEventListener()}var m,d,y,x;return n(a,[{key:"cache",get:function(){return this._cache}},{key:"request",value:(x=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 x.apply(this,arguments)})},{key:"subscribe",value:(y=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 y.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 D({boxID:v(),debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t,whitelistHash:h(t)},r)}},{key:"_request",value:(d=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 l(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 d.apply(this,arguments)})},{key:"_subscribe",value:(m=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 l(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 m.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",[j],Object.getOwnPropertyDescriptor(O.prototype,"_request"),O.prototype),a(O.prototype,"_subscribe",[_],Object.getOwnPropertyDescriptor(O.prototype,"_subscribe"),O.prototype),O);function E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function I(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?E(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var C=self,B=C.addEventListener,S=C.postMessage;function T(){return(T=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,w(c)){t.next=9;break}return p=(u=c)._cacheMetadata,h=e(u,["_cacheMetadata"]),l=I({},h),p&&(l._cacheMetadata=m(p)),S({context:a,method:n,result:d(l),type:"graphqlBox"}),t.abrupt("return");case 9:x(c,(function(t){var r=t._cacheMetadata,o=I({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=m(r)),S({context:a,method:n,result:d(o),type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function L(){return(L=t(i.mark((function t(r,n,o,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:if(c=t.sent,w(c)){t.next=6;break}return S({context:a,method:n,result:d(c),type:"graphqlBox"}),t.abrupt("return");case 6:x(c,(function(t){var r=t._cacheMetadata,o=I({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=m(r)),S({context:a,method:n,result:d(o),type:"graphqlBox"})}));case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function R(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){T.apply(this,arguments)}(s,o,a,n,t):"subscribe"===o&&function(e,t,r,n,o){L.apply(this,arguments)}(s,o,a,n,t)}function A(e){return F.apply(this,arguments)}function F(){return(F=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?R(t,r):"cachemap"===n&&r.cache&&y(t,r.cache)}},r=t.client,B("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default P;export{k as REQUEST_EXECUTED,A 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 { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async 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","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","requestID","boxID","rehydrateCacheMetadata","pending","_pending","get","hasDeferOrStream","_eventEmitter","errors","push","TypeError","cache","worker","length","_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","_castArray","self","client","requestResult","isAsyncIterable","dehydrateCacheMetadata","forAwaitEach","subscribe","subscribeResult","undefined","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","handleCachemapMessage"],"mappings":"81CAAaA,EAAmB,mBCGjB,SAASC,WACf,SACLC,EACAC,EACAC,SAEMC,EAASD,EAAWE,MACrBD,IAELD,EAAWE,mBAAQ,wHAAkCC,2BAAAA,4CAE1C,IAAIC,mCAAQ,WAAMC,yFACmBF,EAAK,GAAvCG,IAAAA,aAAiBC,wBAEpBD,8BACHD,WAAcJ,EAAOO,MAAMC,EAAMN,6EAI7BO,EAAYJ,EAAaK,gBACVV,EAAOO,MAAMC,EAAMN,WAAlCS,SACAC,EAAUP,EAAaK,MACvBG,EAAWD,EAAUH,EAC3BL,EAAQO,GAERN,EAAaS,KD5BS,mBC4Bc,CAClCC,QAAST,EACTU,QAASd,EAAK,GACde,QAASf,EAAK,GACdS,OAAAA,EACAO,MAAO,CAAEL,SAAAA,EAAUD,QAAAA,EAASH,UAAAA,kKAIzBN,QAAQgB,urBClBFC,KAmGlBxB,MAgCAA,+BAxHWoB,kIAHuB,IAAIK,+DA8DlB,sGAASC,IAAAA,KACvBC,EAAcD,uDAEXP,KAAkCO,GAAlCP,QAASf,IAAAA,OAAQW,IAAAA,OFrFF,iBEqFUa,MAEJD,EAAcZ,uDAInCc,EAAkCd,EAAlCc,eAAmBC,IAAef,sBACpCgB,SAAoCD,OAAYE,UAAWb,EAAQc,QAErEJ,IACFE,EAASF,eAAiBK,EAAuBL,IFpGhC,YEuGfzB,sBACI+B,EAAUvB,EAAKwB,SAASC,IAAIlB,EAAQc,0DAM1CE,EAAQ3B,QAAQuB,4BF7GG,cE8GV3B,GAAwBe,EAAQmB,mBACzC1B,EAAK2B,cAAcrB,KAAKC,EAAQc,MAAOF,iGAnFnCS,EAAsB,MAEvBb,EAAcP,IACjBoB,EAAOC,KAAK,IAAIC,UAAU,+DAGvBtB,EAAQuB,OACXH,EAAOC,KAAK,IAAIC,UAAU,gDAGvBtB,EAAQwB,QACXJ,EAAOC,KAAK,IAAIC,UAAU,iDAGxBF,EAAOK,aACHL,OAGHM,OAAS1B,EAAQuB,WACjBI,cAAgB3B,EAAQX,aAAeW,EAAQX,eAAiB,UAChE8B,cAAgB,IAAIS,OACpBC,QAAU7B,EAAQwB,YAClBM,6DAGP,kBACSC,KAAKL,2CAGd,WAAqBzB,6FAAiBD,iCAA0B,GAAID,iCAA+B,qBAC1FgC,KAAKC,SAAS/B,EAASD,EAAS+B,KAAKE,mBAAmBC,EAAOjC,EAASF,uIAGjF,WAAuBE,2FAAiBD,iCAA0B,qBACzD+B,KAAKI,WAAWlC,EAASD,EAAS+B,KAAKE,mBAAmBG,EAAcnC,kIAGjF,gBACO4B,QAAQQ,iBFhEM,UEgEoBN,KAAKO,8CAG9C,SACEC,EACAtC,OACAF,yDAA+B,aAG7Bc,MAAO2B,IACPnD,aAAc0C,KAAKJ,cACnBc,aAAc,IAAIpC,IAClBkC,UAAAA,EACAG,cAAe,GACfC,eAAe,EACf1C,QAAAA,GACGF,wCAiCP,WACuBE,EAAiBD,EAAyBD,2FAExDA,EAAQmB,0DACJ,IAAI/B,SAAQ,SAACC,GAClBwD,EAAKf,QAAQgB,YAAY,CACvB9C,QAASK,EAAa0C,mBAAmB/C,GACzCf,OF3HW,UE4HXgB,QAAAA,EACAC,QAAAA,EACAO,KFzHe,eE4HjBoC,EAAK5B,SAAS+B,IAAIhD,EAAQc,MAAO,CAAEzB,QAAAA,2BAIlCyC,QAAQgB,YAAY,CACvB9C,QAASK,EAAa0C,mBAAmB/C,GACzCf,OFvIe,UEwIfgB,QAAAA,EACAC,QAAAA,EACAO,KFrImB,eEwIfwC,EAAqB,IAAIC,EAAuClB,KAAKZ,cAAepB,EAAQc,yBAC3FmC,EAAmBE,wEAEnB,CAAE9B,OAAQ+B,0JAIrB,WACyBlD,EAAiBD,EAAyBD,6FAE1D8B,QAAQgB,YAAY,CACvB9C,QAASK,EAAa0C,mBAAmB/C,GACzCf,OFxJiB,YEyJjBgB,QAAAA,EACAC,QAAAA,EACAO,KFvJmB,eE0JfwC,EAAqB,IAAIC,EAAuClB,KAAKZ,cAAepB,EAAQc,yBAC3FmC,EAAmBE,wEAEnB,CAAE9B,OAAQ+B,sJAhJrB,gBAAoCtC,IAAAA,UAAOK,uBAClC,CAAEL,MAAAA,EAAOK,szBCZuBkC,KAAnCf,IAAAA,iBAAkBQ,IAAAA,4CAE1B,WACE5C,EACAjB,EACAgB,EACAD,EACAsD,gGAE4BA,EAAOpD,QAAQA,EAASD,EAASD,aAAvDuD,SAEDC,EAAgBD,0BACX7C,KAAkC6C,GAAlC7C,eAAmBC,0BACrBf,OAA6De,GAE/DD,IACFd,EAAOc,eAAiB+C,EAAuB/C,IAGjDoC,EAAY,CAAE9C,QAAAA,EAASf,OAAAA,EAAQW,OAAAA,EAAQa,KHrBhB,yCGyBzBiD,EAAaH,GAAe,gBAAG7C,IAAAA,eACvBd,gCAEFc,IACFd,EAAOc,eAAiB+C,EAAuB/C,IAGjDoC,EAAY,CAAE9C,QAAAA,EAASf,OAAAA,EAAQW,OAAAA,EAAQa,KHhChB,qHGoC3B,WACEP,EACAjB,EACAgB,EACAD,EACAsD,wFAE8BA,EAAOK,UAAUzD,EAASD,EAASD,UAA3D4D,SAEFJ,EAAgBI,GAClBF,EAAaE,GAAiB,gBAAGlD,IAAAA,eACzBd,gCACFc,IAAgBd,EAAOc,eAAiB+C,EAAuB/C,IACnEoC,EAAY,CAAE9C,QAAAA,EAASf,OAAAA,EAAQW,OAAAA,EAAQa,KHjDlB,kBGoDvBqC,EAAY,CAAE9C,QAAAA,EAASf,OAAAA,EAAQW,YAAQiE,EAAWpD,KHpD3B,iFGwDpB,SAASqD,EAAcvD,EAA6B+C,SACX/C,EAAtCP,IAAAA,QAASf,IAAAA,OAAQgB,IAAAA,QAASC,IAAAA,QH9Db,YGgEjBjB,8CACF8E,CAAc7D,EAASjB,EAAQgB,EAASD,EAASsD,GHhE5B,cGiEZrE,+CACT+E,CAAmB9D,EAASjB,EAAQgB,EAASD,EAASsD,YAI5BW,oEAAf,oBACJC,iEAAAA,kBAAY3D,IAAAA,QACdC,EAAcD,QAEXE,EAASF,EAATE,KHtEe,eGwEnBA,EACFqD,EAAcvD,EAAM+C,GHxEF,aGyET7C,GAAqB6C,EAAO9B,OACrC2C,EAAsB5D,EAAM+C,EAAO9B,SATM8B,IAAAA,OAa7ChB,EHjFqB,UGiFK4B"}
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, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.boxID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n","import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata, serializeErrors } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const requestResult = await client.request(request, options, context);\n\n if (!isAsyncIterable(requestResult)) {\n const { _cacheMetadata, ...otherProps } = requestResult as MaybeRequestResult;\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(requestResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nasync function handleSubscription(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const subscribeResult = await client.subscribe(request, options, context);\n\n if (!isAsyncIterable(subscribeResult)) {\n postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"names":["REQUEST_EXECUTED","logRequest","_target","_propertyName","descriptor","method","value","args","Promise","resolve","debugManager","otherContext","apply","_this","startTime","now","result","endTime","duration","emit","context","options","request","stats","reject","WorkerClient","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","deserializeErrors","requestID","boxID","rehydrateCacheMetadata","pending","_pending","get","hasDeferOrStream","_eventEmitter","errors","push","TypeError","cache","worker","length","_cache","_debugManager","EventEmitter","_worker","_addEventListener","this","_request","_getRequestContext","QUERY","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","uuid","fieldTypeMap","operationName","queryFiltered","whitelistHash","hashRequest","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","_castArray","self","client","requestResult","isAsyncIterable","dehydrateCacheMetadata","serializeErrors","forAwaitEach","subscribe","subscribeResult","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","handleCachemapMessage"],"mappings":"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"}
@@ -1,32 +1,32 @@
1
1
  -----------------------------
2
2
  Rollup File Analysis
3
3
  -----------------------------
4
- bundle size: 21.21 KB
5
- original size: 11.136 KB
4
+ bundle size: 21.484 KB
5
+ original size: 11.348 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: 52.28 %
12
- rendered size: 11.088 KB
13
- original size: 4.995 KB
11
+ bundle space: 51.91 %
12
+ rendered size: 11.152 KB
13
+ original size: 5.103 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: 29.02 %
21
- rendered size: 6.156 KB
22
- original size: 3.217 KB
20
+ bundle space: 29.63 %
21
+ rendered size: 6.366 KB
22
+ original size: 3.377 KB
23
23
  code reduction: 0 %
24
24
  dependents: 1
25
25
  - /src/index.ts
26
26
 
27
27
  ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
28
28
  file: /src/debug/log-request/index.ts
29
- bundle space: 17.85 %
29
+ bundle space: 17.62 %
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.85 %
38
+ bundle space: 0.84 %
39
39
  rendered size: 180 Bytes
40
40
  original size: 238 Bytes
41
41
  code reduction: 24.37 %
@@ -49,7 +49,7 @@ dependents: 4
49
49
  file: /src/defs/index.ts
50
50
  bundle space: 0 %
51
51
  rendered size: 0 Byte
52
- original size: 1.276 KB
52
+ original size: 1.22 KB
53
53
  code reduction: 100 %
54
54
  dependents: 1
55
55
  - /src/index.ts
@@ -51,7 +51,10 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
51
51
  (0, _defineProperty2.default)(this, "_onMessage", async ({
52
52
  data
53
53
  }) => {
54
- if (!(0, _isPlainObject2.default)(data)) return;
54
+ if (!(0, _isPlainObject2.default)(data)) {
55
+ return;
56
+ }
57
+
55
58
  const {
56
59
  context,
57
60
  method,
@@ -67,9 +70,9 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
67
70
  _cacheMetadata,
68
71
  ...otherProps
69
72
  } = result;
70
- const response = { ...otherProps,
73
+ const response = (0, _helpers.deserializeErrors)({ ...otherProps,
71
74
  requestID: context.boxID
72
- };
75
+ });
73
76
 
74
77
  if (_cacheMetadata) {
75
78
  response._cacheMetadata = (0, _helpers.rehydrateCacheMetadata)(_cacheMetadata);
@@ -138,6 +141,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
138
141
  operationName: "",
139
142
  queryFiltered: false,
140
143
  request,
144
+ whitelistHash: (0, _helpers.hashRequest)(request),
141
145
  ...context
142
146
  };
143
147
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","_getMessageContext","boxID","hasDeferOrStream","constructor","options","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","requestID","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","EventEmitter","_worker","_addEventListener","request","_request","_getRequestContext","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","Promise","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator","error"],"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 { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async 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
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","_getMessageContext","boxID","hasDeferOrStream","constructor","options","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","requestID","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","EventEmitter","_worker","_addEventListener","request","_request","_getRequestContext","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator","error"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.boxID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
@@ -43,7 +43,7 @@ async function handleRequest(request, method, options, context, client) {
43
43
  postMessage({
44
44
  context,
45
45
  method,
46
- result,
46
+ result: (0, _helpers.serializeErrors)(result),
47
47
  type: _consts.GRAPHQL_BOX
48
48
  });
49
49
  return;
@@ -63,7 +63,7 @@ async function handleRequest(request, method, options, context, client) {
63
63
  postMessage({
64
64
  context,
65
65
  method,
66
- result,
66
+ result: (0, _helpers.serializeErrors)(result),
67
67
  type: _consts.GRAPHQL_BOX
68
68
  });
69
69
  });
@@ -72,29 +72,34 @@ async function handleRequest(request, method, options, context, client) {
72
72
  async function handleSubscription(request, method, options, context, client) {
73
73
  const subscribeResult = await client.subscribe(request, options, context);
74
74
 
75
- if ((0, _iterall.isAsyncIterable)(subscribeResult)) {
76
- (0, _iterall.forAwaitEach)(subscribeResult, ({
77
- _cacheMetadata,
78
- ...otherProps
79
- }) => {
80
- const result = { ...otherProps
81
- };
82
- if (_cacheMetadata) result._cacheMetadata = (0, _helpers.dehydrateCacheMetadata)(_cacheMetadata);
83
- postMessage({
84
- context,
85
- method,
86
- result,
87
- type: _consts.GRAPHQL_BOX
88
- });
89
- });
90
- } else {
75
+ if (!(0, _iterall.isAsyncIterable)(subscribeResult)) {
91
76
  postMessage({
92
77
  context,
93
78
  method,
94
- result: undefined,
79
+ result: (0, _helpers.serializeErrors)(subscribeResult),
95
80
  type: _consts.GRAPHQL_BOX
96
81
  });
82
+ return;
97
83
  }
84
+
85
+ (0, _iterall.forAwaitEach)(subscribeResult, ({
86
+ _cacheMetadata,
87
+ ...otherProps
88
+ }) => {
89
+ const result = { ...otherProps
90
+ };
91
+
92
+ if (_cacheMetadata) {
93
+ result._cacheMetadata = (0, _helpers.dehydrateCacheMetadata)(_cacheMetadata);
94
+ }
95
+
96
+ postMessage({
97
+ context,
98
+ method,
99
+ result: (0, _helpers.serializeErrors)(result),
100
+ type: _consts.GRAPHQL_BOX
101
+ });
102
+ });
98
103
  }
99
104
 
100
105
  function handleMessage(data, client) {
@@ -118,7 +123,10 @@ async function registerWorker({
118
123
  function onMessage({
119
124
  data
120
125
  }) {
121
- if (!(0, _isPlainObject2.default)(data)) return;
126
+ if (!(0, _isPlainObject2.default)(data)) {
127
+ return;
128
+ }
129
+
122
130
  const {
123
131
  type
124
132
  } = data;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/register-worker/index.ts"],"names":["addEventListener","postMessage","self","handleRequest","request","method","options","context","client","requestResult","_cacheMetadata","otherProps","result","type","GRAPHQL_BOX","handleSubscription","subscribeResult","subscribe","undefined","handleMessage","data","REQUEST","SUBSCRIBE","registerWorker","onMessage","CACHEMAP","cache","MESSAGE"],"mappings":"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","sourcesContent":["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"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/register-worker/index.ts"],"names":["addEventListener","postMessage","self","handleRequest","request","method","options","context","client","requestResult","_cacheMetadata","otherProps","result","type","GRAPHQL_BOX","handleSubscription","subscribeResult","subscribe","handleMessage","data","REQUEST","SUBSCRIBE","registerWorker","onMessage","CACHEMAP","cache","MESSAGE"],"mappings":"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","sourcesContent":["import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata, serializeErrors } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const requestResult = await client.request(request, options, context);\n\n if (!isAsyncIterable(requestResult)) {\n const { _cacheMetadata, ...otherProps } = requestResult as MaybeRequestResult;\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(requestResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nasync function handleSubscription(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const subscribeResult = await client.subscribe(request, options, context);\n\n if (!isAsyncIterable(subscribeResult)) {\n postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"file":"index.js"}
@@ -7,7 +7,7 @@ var _dec, _dec2, _class;
7
7
 
8
8
  import "core-js/modules/es.promise.js";
9
9
  import { QUERY, SUBSCRIPTION } from "@graphql-box/core";
10
- import { EventAsyncIterator, rehydrateCacheMetadata } from "@graphql-box/helpers";
10
+ import { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from "@graphql-box/helpers";
11
11
  import EventEmitter from "eventemitter3";
12
12
  import { v1 as uuid } from "uuid";
13
13
  import { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from "../consts";
@@ -37,7 +37,10 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
37
37
  _defineProperty(this, "_onMessage", async ({
38
38
  data
39
39
  }) => {
40
- if (!_isPlainObject(data)) return;
40
+ if (!_isPlainObject(data)) {
41
+ return;
42
+ }
43
+
41
44
  const {
42
45
  context,
43
46
  method,
@@ -53,9 +56,9 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
53
56
  _cacheMetadata,
54
57
  ...otherProps
55
58
  } = result;
56
- const response = { ...otherProps,
59
+ const response = deserializeErrors({ ...otherProps,
57
60
  requestID: context.boxID
58
- };
61
+ });
59
62
 
60
63
  if (_cacheMetadata) {
61
64
  response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
@@ -125,6 +128,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
125
128
  operationName: "",
126
129
  queryFiltered: false,
127
130
  request,
131
+ whitelistHash: hashRequest(request),
128
132
  ...context
129
133
  };
130
134
  }
@@ -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","_getMessageContext","boxID","hasDeferOrStream","constructor","options","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","requestID","pending","_pending","get","resolve","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","_worker","_addEventListener","request","_request","_getRequestContext","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","Promise","postMessage","set","eventAsyncIterator","getIterator","error"],"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 { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async 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
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["QUERY","SUBSCRIPTION","EventAsyncIterator","deserializeErrors","hashRequest","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","WorkerClient","_getMessageContext","boxID","hasDeferOrStream","constructor","options","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","requestID","pending","_pending","get","resolve","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","_worker","_addEventListener","request","_request","_getRequestContext","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","getIterator","error"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.boxID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
@@ -1,7 +1,7 @@
1
1
  import _isPlainObject from "lodash/isPlainObject";
2
2
  import "core-js/modules/es.promise.js";
3
3
  import { handleMessage as handleCachemapMessage } from "@cachemap/core-worker";
4
- import { dehydrateCacheMetadata } from "@graphql-box/helpers";
4
+ import { dehydrateCacheMetadata, serializeErrors } from "@graphql-box/helpers";
5
5
  import { forAwaitEach, isAsyncIterable } from "iterall";
6
6
  import { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from "../consts";
7
7
  const {
@@ -27,7 +27,7 @@ async function handleRequest(request, method, options, context, client) {
27
27
  postMessage({
28
28
  context,
29
29
  method,
30
- result,
30
+ result: serializeErrors(result),
31
31
  type: GRAPHQL_BOX
32
32
  });
33
33
  return;
@@ -47,7 +47,7 @@ async function handleRequest(request, method, options, context, client) {
47
47
  postMessage({
48
48
  context,
49
49
  method,
50
- result,
50
+ result: serializeErrors(result),
51
51
  type: GRAPHQL_BOX
52
52
  });
53
53
  });
@@ -56,29 +56,34 @@ async function handleRequest(request, method, options, context, client) {
56
56
  async function handleSubscription(request, method, options, context, client) {
57
57
  const subscribeResult = await client.subscribe(request, options, context);
58
58
 
59
- if (isAsyncIterable(subscribeResult)) {
60
- forAwaitEach(subscribeResult, ({
61
- _cacheMetadata,
62
- ...otherProps
63
- }) => {
64
- const result = { ...otherProps
65
- };
66
- if (_cacheMetadata) result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);
67
- postMessage({
68
- context,
69
- method,
70
- result,
71
- type: GRAPHQL_BOX
72
- });
73
- });
74
- } else {
59
+ if (!isAsyncIterable(subscribeResult)) {
75
60
  postMessage({
76
61
  context,
77
62
  method,
78
- result: undefined,
63
+ result: serializeErrors(subscribeResult),
79
64
  type: GRAPHQL_BOX
80
65
  });
66
+ return;
81
67
  }
68
+
69
+ forAwaitEach(subscribeResult, ({
70
+ _cacheMetadata,
71
+ ...otherProps
72
+ }) => {
73
+ const result = { ...otherProps
74
+ };
75
+
76
+ if (_cacheMetadata) {
77
+ result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);
78
+ }
79
+
80
+ postMessage({
81
+ context,
82
+ method,
83
+ result: serializeErrors(result),
84
+ type: GRAPHQL_BOX
85
+ });
86
+ });
82
87
  }
83
88
 
84
89
  export function handleMessage(data, client) {
@@ -101,7 +106,10 @@ export default async function registerWorker({
101
106
  function onMessage({
102
107
  data
103
108
  }) {
104
- if (!_isPlainObject(data)) return;
109
+ if (!_isPlainObject(data)) {
110
+ return;
111
+ }
112
+
105
113
  const {
106
114
  type
107
115
  } = data;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/register-worker/index.ts"],"names":["handleMessage","handleCachemapMessage","dehydrateCacheMetadata","forAwaitEach","isAsyncIterable","CACHEMAP","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","addEventListener","postMessage","self","handleRequest","request","method","options","context","client","requestResult","_cacheMetadata","otherProps","result","type","handleSubscription","subscribeResult","subscribe","undefined","data","registerWorker","onMessage","cache"],"mappings":"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","sourcesContent":["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"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/register-worker/index.ts"],"names":["handleMessage","handleCachemapMessage","dehydrateCacheMetadata","serializeErrors","forAwaitEach","isAsyncIterable","CACHEMAP","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","addEventListener","postMessage","self","handleRequest","request","method","options","context","client","requestResult","_cacheMetadata","otherProps","result","type","handleSubscription","subscribeResult","subscribe","data","registerWorker","onMessage","cache"],"mappings":"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","sourcesContent":["import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata, serializeErrors } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const requestResult = await client.request(request, options, context);\n\n if (!isAsyncIterable(requestResult)) {\n const { _cacheMetadata, ...otherProps } = requestResult as MaybeRequestResult;\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(requestResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nasync function handleSubscription(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const subscribeResult = await client.subscribe(request, options, context);\n\n if (!isAsyncIterable(subscribeResult)) {\n postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"file":"index.js"}
@@ -1,6 +1,6 @@
1
1
  import WorkerCachemap from "@cachemap/core-worker";
2
2
  import Client from "@graphql-box/client";
3
- import { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from "@graphql-box/core";
3
+ import { MaybeRawFetchData, MaybeRequestResult, RequestOptions } from "@graphql-box/core";
4
4
  import { DebugManagerInit } from "@graphql-box/debug-manager";
5
5
  export interface UserOptions {
6
6
  /**
@@ -32,7 +32,7 @@ export interface MessageRequestPayload {
32
32
  export interface MessageResponsePayload {
33
33
  context: MessageContext;
34
34
  method: MethodNames;
35
- result: MaybeRequestResultWithDehydratedCacheMetadata;
35
+ result: MaybeRawFetchData;
36
36
  type: "graphqlBox" | "cachemap";
37
37
  }
38
38
  export interface MessageContext {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/defs/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,6CAA6C,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACtH,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD,oBAAY,eAAe,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,oBAAY,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,6CAA6C,CAAC;IACtD,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/defs/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD,oBAAY,eAAe,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,oBAAY,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -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,EAA2E,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/G,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,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,OAAO,EAAE,WAAW;IA0BhC,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"}
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,EAA2E,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/G,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,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,OAAO,EAAE,WAAW;IA0BhC,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;IAkB1B,OAAO,CAAC,UAAU,CA6BhB;YAGY,QAAQ;YAgCR,UAAU;CAgBzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/register-worker/index.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAMzC,OAAO,EAAkB,qBAAqB,EAAe,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAwDpG,wBAAgB,aAAa,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ/E;AAED,wBAA8B,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAc7F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/register-worker/index.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAMzC,OAAO,EAAkB,qBAAqB,EAAe,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA6DpG,wBAAgB,aAAa,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ/E;AAED,wBAA8B,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-box/worker-client",
3
- "version": "3.0.0",
3
+ "version": "3.3.0",
4
4
  "description": "The GraphQL Box web worker client module.",
5
5
  "author": "Dylan Aubrey <dylanaubrey@gmail.com>",
6
6
  "license": "MIT",
@@ -40,8 +40,8 @@
40
40
  },
41
41
  "peerDependencies": {
42
42
  "@babel/runtime": "< 8",
43
- "@graphql-box/core": "< 3",
44
- "@graphql-box/helpers": "< 3",
43
+ "@graphql-box/core": "< 4",
44
+ "@graphql-box/helpers": "< 4",
45
45
  "core-js": "< 4",
46
46
  "lodash": "< 5"
47
47
  },
package/src/defs/index.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import WorkerCachemap from "@cachemap/core-worker";
2
2
  import Client from "@graphql-box/client";
3
- import { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from "@graphql-box/core";
3
+ import { MaybeRawFetchData, MaybeRequestResult, RequestOptions } from "@graphql-box/core";
4
4
  import { DebugManagerInit } from "@graphql-box/debug-manager";
5
5
 
6
6
  export interface UserOptions {
@@ -41,7 +41,7 @@ export interface MessageRequestPayload {
41
41
  export interface MessageResponsePayload {
42
42
  context: MessageContext;
43
43
  method: MethodNames;
44
- result: MaybeRequestResultWithDehydratedCacheMetadata;
44
+ result: MaybeRawFetchData;
45
45
  type: "graphqlBox" | "cachemap";
46
46
  }
47
47
 
package/src/main/index.ts CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  SUBSCRIPTION,
10
10
  ValidOperations,
11
11
  } from "@graphql-box/core";
12
- import { EventAsyncIterator, rehydrateCacheMetadata } from "@graphql-box/helpers";
12
+ import { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from "@graphql-box/helpers";
13
13
  import EventEmitter from "eventemitter3";
14
14
  import { castArray, isPlainObject } from "lodash";
15
15
  import { v1 as uuid } from "uuid";
@@ -83,12 +83,15 @@ export default class WorkerClient {
83
83
  operationName: "",
84
84
  queryFiltered: false,
85
85
  request,
86
+ whitelistHash: hashRequest(request),
86
87
  ...context,
87
88
  };
88
89
  }
89
90
 
90
91
  private _onMessage = async ({ data }: MessageEvent): Promise<void> => {
91
- if (!isPlainObject(data)) return;
92
+ if (!isPlainObject(data)) {
93
+ return;
94
+ }
92
95
 
93
96
  const { context, method, result, type } = data as MessageResponsePayload;
94
97
 
@@ -97,7 +100,7 @@ export default class WorkerClient {
97
100
  }
98
101
 
99
102
  const { _cacheMetadata, ...otherProps } = result;
100
- const response: MaybeRequestResult = { ...otherProps, requestID: context.boxID };
103
+ const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });
101
104
 
102
105
  if (_cacheMetadata) {
103
106
  response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
@@ -1,7 +1,7 @@
1
1
  import { handleMessage as handleCachemapMessage } from "@cachemap/core-worker";
2
2
  import Client from "@graphql-box/client";
3
3
  import { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from "@graphql-box/core";
4
- import { dehydrateCacheMetadata } from "@graphql-box/helpers";
4
+ import { dehydrateCacheMetadata, serializeErrors } from "@graphql-box/helpers";
5
5
  import { forAwaitEach, isAsyncIterable } from "iterall";
6
6
  import { isPlainObject } from "lodash";
7
7
  import { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from "../consts";
@@ -26,7 +26,7 @@ async function handleRequest(
26
26
  result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);
27
27
  }
28
28
 
29
- postMessage({ context, method, result, type: GRAPHQL_BOX });
29
+ postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });
30
30
  return;
31
31
  }
32
32
 
@@ -37,7 +37,7 @@ async function handleRequest(
37
37
  result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);
38
38
  }
39
39
 
40
- postMessage({ context, method, result, type: GRAPHQL_BOX });
40
+ postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });
41
41
  });
42
42
  }
43
43
 
@@ -50,15 +50,20 @@ async function handleSubscription(
50
50
  ): Promise<void> {
51
51
  const subscribeResult = await client.subscribe(request, options, context);
52
52
 
53
- if (isAsyncIterable(subscribeResult)) {
54
- forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {
55
- const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };
56
- if (_cacheMetadata) result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);
57
- postMessage({ context, method, result, type: GRAPHQL_BOX });
58
- });
59
- } else {
60
- postMessage({ context, method, result: undefined, type: GRAPHQL_BOX });
53
+ if (!isAsyncIterable(subscribeResult)) {
54
+ postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });
55
+ return;
61
56
  }
57
+
58
+ forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {
59
+ const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };
60
+
61
+ if (_cacheMetadata) {
62
+ result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);
63
+ }
64
+
65
+ postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });
66
+ });
62
67
  }
63
68
 
64
69
  export function handleMessage(data: MessageRequestPayload, client: Client): void {
@@ -73,7 +78,9 @@ export function handleMessage(data: MessageRequestPayload, client: Client): void
73
78
 
74
79
  export default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {
75
80
  function onMessage({ data }: MessageEvent): void {
76
- if (!isPlainObject(data)) return;
81
+ if (!isPlainObject(data)) {
82
+ return;
83
+ }
77
84
 
78
85
  const { type } = data as MessageRequestPayload;
79
86