@graphql-box/worker-client 2.1.1 → 2.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";import e from"@babel/runtime/helpers/objectWithoutProperties";import t from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/classCallCheck";import n from"@babel/runtime/helpers/createClass";import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/applyDecoratedDescriptor";import a from"lodash/isPlainObject";import c from"@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 u,{handleMessage as i}from"@cachemap/core-worker";import{QUERY as p,SUBSCRIPTION as l}from"@graphql-box/core";import{EventAsyncIterator as b,rehydrateCacheMetadata as h,dehydrateCacheMetadata as f}from"@graphql-box/helpers";import m from"eventemitter3";import{v1 as d}from"uuid";import{isAsyncIterable as v,forAwaitEach as g}from"iterall";var y,w,x,j="request_executed";function _(){return function(r,n,o){var s,a=o.value;a&&(o.value=(s=t(c.mark((function r(){var n,o,s,u=this,i=arguments;return c.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=i.length,o=new Array(n),s=0;s<n;s++)o[s]=i[s];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(c.mark((function t(r){var n,s,i,p,l,b,h;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=o[2],s=n.debugManager,i=e(n,["debugManager"]),s){t.next=8;break}return t.t0=r,t.next=5,a.apply(u,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=s.now(),t.next=11,a.apply(u,o);case 11:l=t.sent,b=s.now(),h=b-p,r(l),s.emit("request_executed",{context:i,options:o[1],request:o[0],result:l,stats:{duration:h,endTime:b,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 s.apply(this,arguments)}))}}function k(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?k(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):k(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var M=(y=_(),w=_(),s((x=function(){function s(n){var i,p=this,l=n.debugManager,b=n.worker;r(this,s),o(this,"_cache",void 0),o(this,"_debugManager",void 0),o(this,"_eventEmitter",void 0),o(this,"_pending",new Map),o(this,"_worker",void 0),o(this,"_onMessage",(i=t(c.mark((function t(r){var n,o,s,u,i,l,b,f,m;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,a(n)){t.next=3;break}return t.abrupt("return");case 3:if(s=(o=n).context,u=o.method,i=o.result,"graphqlBox"===o.type&&a(i)){t.next=6;break}return t.abrupt("return");case 6:if(l=i._cacheMetadata,b=e(i,["_cacheMetadata"]),f=O({},b),l&&(f._cacheMetadata=h(l)),"request"!==u){t.next=16;break}if(m=p._pending.get(s.boxID)){t.next=13;break}return t.abrupt("return");case 13:m.resolve(f),t.next=17;break;case 16:"subscribe"===u&&p._eventEmitter.emit(s.boxID,f);case 17:case"end":return t.stop()}}),t)}))),function(e){return i.apply(this,arguments)})),this._cache=new u({worker:b}),this._debugManager=l||null,this._eventEmitter=new m,this._worker=b,this._addEventListener()}var i,f,v,g,y;return n(s,[{key:"cache",get:function(){return this._cache}},{key:"request",value:(y=t(c.mark((function e(t){var r,n=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.prev=1,e.abrupt("return",this._request(t,r,this._getRequestContext(p,t)));case 5:return e.prev=5,e.t0=e.catch(1),e.abrupt("return",{errors:e.t0});case 8:case"end":return e.stop()}}),e,this,[[1,5]])}))),function(e){return y.apply(this,arguments)})},{key:"subscribe",value:(g=t(c.mark((function e(t){var r,n=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.prev=1,e.next=4,this._subscribe(t,r,this._getRequestContext(l,t));case 4:return e.abrupt("return",e.sent);case 7:return e.prev=7,e.t0=e.catch(1),e.abrupt("return",Promise.reject(e.t0));case 10:case"end":return e.stop()}}),e,this,[[1,7]])}))),function(e){return g.apply(this,arguments)})},{key:"_addEventListener",value:function(){this._worker.addEventListener("message",this._onMessage)}},{key:"_getRequestContext",value:function(e,t){return{boxID:d(),debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t}}},{key:"_request",value:(v=t(c.mark((function e(t,r,n){var o=this;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.abrupt("return",new Promise((function(e){o._worker.postMessage({context:s._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o._pending.set(n.boxID,{resolve:e})})));case 4:return e.prev=4,e.t0=e.catch(0),e.abrupt("return",{errors:e.t0});case 7:case"end":return e.stop()}}),e,null,[[0,4]])}))),function(e,t,r){return v.apply(this,arguments)})},{key:"_subscribe",value:(f=t(c.mark((function e(t,r,n){var o;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:s._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new b(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",Promise.reject(e.t0));case 9:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t,r){return f.apply(this,arguments)})}],[{key:"init",value:(i=t(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=[],a(t)||r.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),t.worker||r.push(new TypeError("@graphql-box/client expected options.worker.")),n={worker:t.worker},e.prev=4,!t.debugManager){e.next=9;break}return e.next=8,t.debugManager();case 8:n.debugManager=e.sent;case 9:return e.abrupt("return",new s(n));case 12:return e.prev=12,e.t0=e.catch(4),e.abrupt("return",Promise.reject(e.t0));case 15:case"end":return e.stop()}}),e,null,[[4,12]])}))),function(e){return i.apply(this,arguments)})},{key:"_getMessageContext",value:function(e){return{boxID:e.boxID}}}]),s}()).prototype,"_request",[y],Object.getOwnPropertyDescriptor(x.prototype,"_request"),x.prototype),s(x.prototype,"_subscribe",[w],Object.getOwnPropertyDescriptor(x.prototype,"_subscribe"),x.prototype),x);function q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?q(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):q(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var D=self,E=D.addEventListener,C=D.postMessage;function I(){return(I=t(c.mark((function t(r,n,o,s,a){var u,i,p,l;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.request(r,o,s);case 2:u=t.sent,i=u._cacheMetadata,p=e(u,["_cacheMetadata"]),l=P({},p),i&&(l._cacheMetadata=f(i)),C({context:s,method:n,result:l,type:"graphqlBox"});case 8:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function B(){return(B=t(c.mark((function t(r,n,o,s,a){var u;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.subscribe(r,o,s);case 2:u=t.sent,v(u)&&g(u,(function(t){var r=t._cacheMetadata,o=P({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=f(r)),C({context:s,method:n,result:o,type:"graphqlBox"})}));case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function T(e,t){var r=e,n=r.context,o=r.method,s=r.options,a=r.request;"request"===o?function(e,t,r,n,o){I.apply(this,arguments)}(a,o,s,n,t):"subscribe"===o&&function(e,t,r,n,o){B.apply(this,arguments)}(a,o,s,n,t)}function L(e){return S.apply(this,arguments)}function S(){return(S=t(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(a(t)){var n=t.type;"graphqlBox"===n?T(t,r):"cachemap"===n&&r.cache&&i(t,r.cache)}},r=t.client,E("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default M;export{j as REQUEST_EXECUTED,L 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 s from"@babel/runtime/helpers/applyDecoratedDescriptor";import a from"lodash/isPlainObject";import c from"@babel/runtime/regenerator";import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.map.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.promise.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import{QUERY as u,SUBSCRIPTION as i}from"@graphql-box/core";import{EventAsyncIterator as p,rehydrateCacheMetadata as h,dehydrateCacheMetadata as l}from"@graphql-box/helpers";import b from"eventemitter3";import{v1 as f}from"uuid";import{handleMessage as m}from"@cachemap/core-worker";import{isAsyncIterable as d,forAwaitEach as v}from"iterall";var g,y,w,x="request_executed";function j(){return function(r,n,o){var s,a=o.value;a&&(o.value=(s=t(c.mark((function r(){var n,o,s,u=this,i=arguments;return c.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=i.length,o=new Array(n),s=0;s<n;s++)o[s]=i[s];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(c.mark((function t(r){var n,s,i,p,h,l,b;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=o[2],s=n.debugManager,i=e(n,["debugManager"]),s){t.next=8;break}return t.t0=r,t.next=5,a.apply(u,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=s.now(),t.next=11,a.apply(u,o);case 11:h=t.sent,l=s.now(),b=l-p,r(h),s.emit("request_executed",{context:i,options:o[1],request:o[0],result:h,stats:{duration:b,endTime:l,startTime:p}});case 16:case"end":return t.stop()}}),t)})));return function(e){return r.apply(this,arguments)}}()));case 5:return r.prev=5,r.t0=r.catch(1),r.abrupt("return",Promise.reject(r.t0));case 8:case"end":return r.stop()}}),r,null,[[1,5]])}))),function(){return s.apply(this,arguments)}))}}function _(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?_(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var O=(g=j(),y=j(),s((w=function(){function s(n){var u,i=this,p=n.cache,l=n.debugManager,f=n.worker;r(this,s),o(this,"_cache",void 0),o(this,"_debugManager",void 0),o(this,"_eventEmitter",void 0),o(this,"_pending",new Map),o(this,"_worker",void 0),o(this,"_onMessage",(u=t(c.mark((function t(r){var n,o,s,u,p,l,b,f,m;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,a(n)){t.next=3;break}return t.abrupt("return");case 3:if(s=(o=n).context,u=o.method,p=o.result,"graphqlBox"===o.type&&a(p)){t.next=6;break}return t.abrupt("return");case 6:if(l=p._cacheMetadata,b=e(p,["_cacheMetadata"]),f=k({},b),l&&(f._cacheMetadata=h(l)),"request"!==u){t.next=16;break}if(m=i._pending.get(s.boxID)){t.next=13;break}return t.abrupt("return");case 13:m.resolve(f),t.next=17;break;case 16:"subscribe"===u&&i._eventEmitter.emit(s.boxID,f);case 17:case"end":return t.stop()}}),t)}))),function(e){return u.apply(this,arguments)})),this._cache=p,this._debugManager=l||null,this._eventEmitter=new b,this._worker=f,this._addEventListener()}var l,m,d,v,g;return n(s,[{key:"cache",get:function(){return this._cache}},{key:"request",value:(g=t(c.mark((function e(t){var r,n=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.prev=1,e.abrupt("return",this._request(t,r,this._getRequestContext(u,t)));case 5:return e.prev=5,e.t0=e.catch(1),e.abrupt("return",{errors:e.t0});case 8:case"end":return e.stop()}}),e,this,[[1,5]])}))),function(e){return g.apply(this,arguments)})},{key:"subscribe",value:(v=t(c.mark((function e(t){var r,n=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.prev=1,e.next=4,this._subscribe(t,r,this._getRequestContext(i,t));case 4:return e.abrupt("return",e.sent);case 7:return e.prev=7,e.t0=e.catch(1),e.abrupt("return",Promise.reject(e.t0));case 10:case"end":return e.stop()}}),e,this,[[1,7]])}))),function(e){return v.apply(this,arguments)})},{key:"_addEventListener",value:function(){this._worker.addEventListener("message",this._onMessage)}},{key:"_getRequestContext",value:function(e,t){return{boxID:f(),debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t}}},{key:"_request",value:(d=t(c.mark((function e(t,r,n){var o=this;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.abrupt("return",new Promise((function(e){o._worker.postMessage({context:s._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o._pending.set(n.boxID,{resolve:e})})));case 4:return e.prev=4,e.t0=e.catch(0),e.abrupt("return",{errors:e.t0});case 7:case"end":return e.stop()}}),e,null,[[0,4]])}))),function(e,t,r){return d.apply(this,arguments)})},{key:"_subscribe",value:(m=t(c.mark((function e(t,r,n){var o;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:s._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new p(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",Promise.reject(e.t0));case 9:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t,r){return m.apply(this,arguments)})}],[{key:"init",value:(l=t(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=[],a(t)||r.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),t.cache||r.push(new TypeError("@graphql-box/client expected options.cache.")),t.worker||r.push(new TypeError("@graphql-box/client expected options.worker.")),n={cache:t.cache,worker:t.worker},e.prev=5,!t.debugManager){e.next=10;break}return e.next=9,t.debugManager();case 9:n.debugManager=e.sent;case 10:return e.abrupt("return",new s(n));case 13:return e.prev=13,e.t0=e.catch(5),e.abrupt("return",Promise.reject(e.t0));case 16:case"end":return e.stop()}}),e,null,[[5,13]])}))),function(e){return l.apply(this,arguments)})},{key:"_getMessageContext",value:function(e){return{boxID:e.boxID}}}]),s}()).prototype,"_request",[g],Object.getOwnPropertyDescriptor(w.prototype,"_request"),w.prototype),s(w.prototype,"_subscribe",[y],Object.getOwnPropertyDescriptor(w.prototype,"_subscribe"),w.prototype),w);function q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function M(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?q(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):q(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var P=self,D=P.addEventListener,E=P.postMessage;function C(){return(C=t(c.mark((function t(r,n,o,s,a){var u,i,p,h;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.request(r,o,s);case 2:u=t.sent,i=u._cacheMetadata,p=e(u,["_cacheMetadata"]),h=M({},p),i&&(h._cacheMetadata=l(i)),E({context:s,method:n,result:h,type:"graphqlBox"});case 8:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function I(){return(I=t(c.mark((function t(r,n,o,s,a){var u;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.subscribe(r,o,s);case 2:u=t.sent,d(u)&&v(u,(function(t){var r=t._cacheMetadata,o=M({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=l(r)),E({context:s,method:n,result:o,type:"graphqlBox"})}));case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function T(e,t){var r=e,n=r.context,o=r.method,s=r.options,a=r.request;"request"===o?function(e,t,r,n,o){C.apply(this,arguments)}(a,o,s,n,t):"subscribe"===o&&function(e,t,r,n,o){I.apply(this,arguments)}(a,o,s,n,t)}function B(e){return L.apply(this,arguments)}function L(){return(L=t(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(a(t)){var n=t.type;"graphqlBox"===n?T(t,r):"cachemap"===n&&r.cache&&m(t,r.cache)}},r=t.client,D("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default O;export{x as REQUEST_EXECUTED,B 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 MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n const constructorOptions: ConstructorOptions = {\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private static _getMessageContext({ boxID }: RequestContext): MessageContext {\n return { boxID };\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({ debugManager, worker }: ConstructorOptions) {\n this._cache = new WorkerCachemap({ worker });\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}): Promise<MaybeRequestResult> {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request)) as MaybeRequestResult;\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(operation: ValidOperations, request: string): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\n\n const { context, method, result, type } = data as MessageResponsePayload;\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = { ...otherProps };\n if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n if (!pending) return;\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<MaybeRequestResult> {\n try {\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 } catch (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n","import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const { _cacheMetadata, ...otherProps } = await client.request(request, options, context);\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n if (_cacheMetadata) result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n postMessage({ context, method, result, type: GRAPHQL_BOX });\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 }\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","worker","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","rehydrateCacheMetadata","pending","_pending","get","boxID","_eventEmitter","_cache","WorkerCachemap","_debugManager","EventEmitter","_worker","_addEventListener","this","_request","_getRequestContext","QUERY","errors","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","uuid","fieldTypeMap","operationName","queryFiltered","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","push","TypeError","constructorOptions","self","client","dehydrateCacheMetadata","subscribe","subscribeResult","isAsyncIterable","forAwaitEach","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","cache","handleCachemapMessage"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../worker-client/src/consts/index.ts","../worker-client/src/debug/log-request/index.ts","../worker-client/src/main/index.ts","../worker-client/src/register-worker/index.ts"],"sourcesContent":["export const REQUEST_EXECUTED = \"request_executed\";\n\nexport const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n","import { RequestContext } from \"@graphql-box/core\";\nimport { REQUEST_EXECUTED } from \"../../consts\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n","import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n const constructorOptions: ConstructorOptions = {\n cache: options.cache,\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private static _getMessageContext({ boxID }: RequestContext): MessageContext {\n return { boxID };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor({ cache, debugManager, worker }: ConstructorOptions) {\n this._cache = cache;\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}): Promise<MaybeRequestResult> {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request)) as MaybeRequestResult;\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(operation: ValidOperations, request: string): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\n\n const { context, method, result, type } = data as MessageResponsePayload;\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = { ...otherProps };\n if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n if (!pending) return;\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<MaybeRequestResult> {\n try {\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 } catch (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n","import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const { _cacheMetadata, ...otherProps } = await client.request(request, options, context);\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n if (_cacheMetadata) result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n postMessage({ context, method, result, type: GRAPHQL_BOX });\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 }\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) return;\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"names":["REQUEST_EXECUTED","logRequest","_target","_propertyName","descriptor","method","value","args","Promise","resolve","debugManager","otherContext","apply","_this","startTime","now","result","endTime","duration","emit","context","options","request","stats","reject","WorkerClient","cache","worker","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","rehydrateCacheMetadata","pending","_pending","get","boxID","_eventEmitter","_cache","_debugManager","EventEmitter","_worker","_addEventListener","this","_request","_getRequestContext","QUERY","errors","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","uuid","fieldTypeMap","operationName","queryFiltered","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","push","TypeError","constructorOptions","self","client","dehydrateCacheMetadata","subscribe","subscribeResult","isAsyncIterable","forAwaitEach","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: 20.911 KB
5
- original size: 10.6 KB
4
+ bundle size: 21.088 KB
5
+ original size: 10.884 KB
6
6
  code reduction: 0 %
7
7
  module count: 6
8
8
 
9
9
  ████████████████████████████░░░░░░░░░░░░░░░░░░░░░░
10
10
  file: /src/main/index.ts
11
- bundle space: 56.28 %
12
- rendered size: 11.768 KB
13
- original size: 4.978 KB
11
+ bundle space: 56.64 %
12
+ rendered size: 11.945 KB
13
+ original size: 5.102 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: 24.76 %
20
+ bundle space: 24.55 %
21
21
  rendered size: 5.177 KB
22
22
  original size: 2.635 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: 18.11 %
29
+ bundle space: 17.95 %
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.86 %
38
+ bundle space: 0.85 %
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.339 KB
52
+ original size: 1.499 KB
53
53
  code reduction: 100 %
54
54
  dependents: 1
55
55
  - /src/index.ts
@@ -15,8 +15,6 @@ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/
15
15
 
16
16
  var _isPlainObject2 = _interopRequireDefault(require("lodash/isPlainObject"));
17
17
 
18
- var _coreWorker = _interopRequireDefault(require("@cachemap/core-worker"));
19
-
20
18
  var _core = require("@graphql-box/core");
21
19
 
22
20
  var _helpers = require("@graphql-box/helpers");
@@ -39,11 +37,16 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
39
37
  errors.push(new TypeError("@graphql-box/client expected options to ba a plain object."));
40
38
  }
41
39
 
40
+ if (!options.cache) {
41
+ errors.push(new TypeError("@graphql-box/client expected options.cache."));
42
+ }
43
+
42
44
  if (!options.worker) {
43
45
  errors.push(new TypeError("@graphql-box/client expected options.worker."));
44
46
  }
45
47
 
46
48
  const constructorOptions = {
49
+ cache: options.cache,
47
50
  worker: options.worker
48
51
  };
49
52
 
@@ -67,6 +70,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
67
70
  }
68
71
 
69
72
  constructor({
73
+ cache,
70
74
  debugManager,
71
75
  worker
72
76
  }) {
@@ -103,9 +107,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
103
107
  this._eventEmitter.emit(context.boxID, response);
104
108
  }
105
109
  });
106
- this._cache = new _coreWorker.default({
107
- worker
108
- });
110
+ this._cache = cache;
109
111
  this._debugManager = debugManager || null;
110
112
  this._eventEmitter = new _eventemitter.default();
111
113
  this._worker = worker;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","init","options","errors","push","TypeError","worker","constructorOptions","debugManager","error","Promise","reject","_getMessageContext","boxID","constructor","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","_cache","WorkerCachemap","_debugManager","EventEmitter","_worker","_addEventListener","cache","request","_request","_getRequestContext","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n const constructorOptions: ConstructorOptions = {\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private static _getMessageContext({ boxID }: RequestContext): MessageContext {\n return { boxID };\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({ debugManager, worker }: ConstructorOptions) {\n this._cache = new WorkerCachemap({ worker });\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}): Promise<MaybeRequestResult> {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request)) as MaybeRequestResult;\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(operation: ValidOperations, request: string): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\n\n const { context, method, result, type } = data as MessageResponsePayload;\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = { ...otherProps };\n if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n if (!pending) return;\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<MaybeRequestResult> {\n try {\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 } catch (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","init","options","errors","push","TypeError","cache","worker","constructorOptions","debugManager","error","Promise","reject","_getMessageContext","boxID","constructor","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","_cache","_debugManager","EventEmitter","_worker","_addEventListener","request","_request","_getRequestContext","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n const constructorOptions: ConstructorOptions = {\n cache: options.cache,\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private static _getMessageContext({ boxID }: RequestContext): MessageContext {\n return { boxID };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor({ cache, debugManager, worker }: ConstructorOptions) {\n this._cache = cache;\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}): Promise<MaybeRequestResult> {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request)) as MaybeRequestResult;\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(operation: ValidOperations, request: string): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\n\n const { context, method, result, type } = data as MessageResponsePayload;\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = { ...otherProps };\n if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n if (!pending) return;\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<MaybeRequestResult> {\n try {\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 } catch (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n"],"file":"index.js"}
@@ -5,7 +5,6 @@ import _isPlainObject from "lodash/isPlainObject";
5
5
  var _dec, _dec2, _class;
6
6
 
7
7
  import "core-js/modules/es.promise.js";
8
- import WorkerCachemap from "@cachemap/core-worker";
9
8
  import { QUERY, SUBSCRIPTION } from "@graphql-box/core";
10
9
  import { EventAsyncIterator, rehydrateCacheMetadata } from "@graphql-box/helpers";
11
10
  import EventEmitter from "eventemitter3";
@@ -20,11 +19,16 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
20
19
  errors.push(new TypeError("@graphql-box/client expected options to ba a plain object."));
21
20
  }
22
21
 
22
+ if (!options.cache) {
23
+ errors.push(new TypeError("@graphql-box/client expected options.cache."));
24
+ }
25
+
23
26
  if (!options.worker) {
24
27
  errors.push(new TypeError("@graphql-box/client expected options.worker."));
25
28
  }
26
29
 
27
30
  const constructorOptions = {
31
+ cache: options.cache,
28
32
  worker: options.worker
29
33
  };
30
34
 
@@ -48,6 +52,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
48
52
  }
49
53
 
50
54
  constructor({
55
+ cache,
51
56
  debugManager,
52
57
  worker
53
58
  }) {
@@ -90,9 +95,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
90
95
  }
91
96
  });
92
97
 
93
- this._cache = new WorkerCachemap({
94
- worker
95
- });
98
+ this._cache = cache;
96
99
  this._debugManager = debugManager || null;
97
100
  this._eventEmitter = new EventEmitter();
98
101
  this._worker = worker;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerCachemap","QUERY","SUBSCRIPTION","EventAsyncIterator","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","WorkerClient","init","options","errors","push","TypeError","worker","constructorOptions","debugManager","error","Promise","reject","_getMessageContext","boxID","constructor","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","pending","_pending","get","resolve","_eventEmitter","emit","_cache","_debugManager","_worker","_addEventListener","cache","request","_request","_getRequestContext","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","postMessage","set","eventAsyncIterator","getIterator"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n const constructorOptions: ConstructorOptions = {\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private static _getMessageContext({ boxID }: RequestContext): MessageContext {\n return { boxID };\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({ debugManager, worker }: ConstructorOptions) {\n this._cache = new WorkerCachemap({ worker });\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}): Promise<MaybeRequestResult> {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request)) as MaybeRequestResult;\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(operation: ValidOperations, request: string): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\n\n const { context, method, result, type } = data as MessageResponsePayload;\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = { ...otherProps };\n if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n if (!pending) return;\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<MaybeRequestResult> {\n try {\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 } catch (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/main/index.ts"],"names":["QUERY","SUBSCRIPTION","EventAsyncIterator","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","WorkerClient","init","options","errors","push","TypeError","cache","worker","constructorOptions","debugManager","error","Promise","reject","_getMessageContext","boxID","constructor","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","pending","_pending","get","resolve","_eventEmitter","emit","_cache","_debugManager","_worker","_addEventListener","request","_request","_getRequestContext","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","postMessage","set","eventAsyncIterator","getIterator"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport {\n ConstructorOptions,\n MessageContext,\n MessageResponsePayload,\n PendingResolver,\n PendingTracker,\n UserOptions,\n} from \"../defs\";\n\nexport default class WorkerClient {\n public static async init(options: UserOptions): Promise<WorkerClient> {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n const constructorOptions: ConstructorOptions = {\n cache: options.cache,\n worker: options.worker,\n };\n\n try {\n if (options.debugManager) {\n constructorOptions.debugManager = await options.debugManager();\n }\n\n return new WorkerClient(constructorOptions);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private static _getMessageContext({ boxID }: RequestContext): MessageContext {\n return { boxID };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor({ cache, debugManager, worker }: ConstructorOptions) {\n this._cache = cache;\n this._debugManager = debugManager || null;\n this._eventEmitter = new EventEmitter();\n this._worker = worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async request(request: string, options: RequestOptions = {}): Promise<MaybeRequestResult> {\n try {\n return this._request(request, options, this._getRequestContext(QUERY, request)) as MaybeRequestResult;\n } catch (error) {\n return { errors: error };\n }\n }\n\n public async subscribe(\n request: string,\n options: RequestOptions = {},\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n return (await this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request))) as AsyncIterator<\n MaybeRequestResult | undefined\n >;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(operation: ValidOperations, request: string): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) return;\n\n const { context, method, result, type } = data as MessageResponsePayload;\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) return;\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = { ...otherProps };\n if (_cacheMetadata) response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n if (!pending) return;\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<MaybeRequestResult> {\n try {\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 } catch (errors) {\n return { errors };\n }\n }\n\n @logRequest()\n private async _subscribe(\n request: string,\n options: RequestOptions,\n context: RequestContext,\n ): Promise<AsyncIterator<MaybeRequestResult | undefined>> {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n"],"file":"index.js"}
@@ -1,7 +1,12 @@
1
+ import WorkerCachemap from "@cachemap/core-worker";
1
2
  import Client from "@graphql-box/client";
2
3
  import { DebugManagerDef, MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from "@graphql-box/core";
3
4
  import { DebugManagerInit } from "@graphql-box/debug-manager";
4
5
  export interface UserOptions {
6
+ /**
7
+ * The cache.
8
+ */
9
+ cache: WorkerCachemap;
5
10
  /**
6
11
  * The curried function to initialize the debug manager.
7
12
  */
@@ -12,6 +17,10 @@ export interface UserOptions {
12
17
  worker: Worker;
13
18
  }
14
19
  export interface ConstructorOptions {
20
+ /**
21
+ * The cache.
22
+ */
23
+ cache: WorkerCachemap;
15
24
  /**
16
25
  * The debug manager.
17
26
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/defs/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,6CAA6C,EAC7C,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAE/B;;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;CACf;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,EACL,eAAe,EACf,kBAAkB,EAClB,6CAA6C,EAC7C,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,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,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAE/B;;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;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -9,7 +9,7 @@ export default class WorkerClient {
9
9
  private _eventEmitter;
10
10
  private _pending;
11
11
  private _worker;
12
- constructor({ debugManager, worker }: ConstructorOptions);
12
+ constructor({ cache, debugManager, worker }: ConstructorOptions);
13
13
  get cache(): WorkerCachemap;
14
14
  request(request: string, options?: RequestOptions): Promise<MaybeRequestResult>;
15
15
  subscribe(request: string, options?: RequestOptions): Promise<AsyncIterator<MaybeRequestResult | undefined>>;
@@ -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,kBAAkB,EAGlB,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,kBAAkB,EAKlB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,YAAY;WACX,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA0BrE,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAS;gBAEZ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,kBAAkB;IAQxD,IAAI,KAAK,IAAI,cAAc,CAE1B;IAEY,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQnF,SAAS,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAUzD,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,UAAU,CAkBhB;YAGY,QAAQ;YAuBR,UAAU;CAoBzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAEL,kBAAkB,EAGlB,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EACL,kBAAkB,EAKlB,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,YAAY;WACX,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA+BrE,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAS;gBAEZ,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,kBAAkB;IAQ/D,IAAI,KAAK,IAAI,cAAc,CAE1B;IAEY,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQnF,SAAS,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAAC;IAUzD,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,UAAU,CAkBhB;YAGY,QAAQ;YAuBR,UAAU;CAoBzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-box/worker-client",
3
- "version": "2.1.1",
3
+ "version": "2.1.5",
4
4
  "description": "The GraphQL Box web worker client module.",
5
5
  "author": "Dylan Aubrey <dylanaubrey@gmail.com>",
6
6
  "license": "MIT",
@@ -46,9 +46,9 @@
46
46
  "lodash": "< 5"
47
47
  },
48
48
  "dependencies": {
49
- "@cachemap/constants": "^3.1.3",
50
- "@cachemap/core": "^3.1.5",
51
- "@cachemap/core-worker": "^3.1.3",
49
+ "@cachemap/constants": "3.2.0",
50
+ "@cachemap/core": "3.2.1",
51
+ "@cachemap/core-worker": "3.2.1",
52
52
  "eventemitter3": "^4.0.0",
53
53
  "iterall": "^1.3.0",
54
54
  "uuid": "^7.0.1"
package/src/defs/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import WorkerCachemap from "@cachemap/core-worker";
1
2
  import Client from "@graphql-box/client";
2
3
  import {
3
4
  DebugManagerDef,
@@ -8,6 +9,11 @@ import {
8
9
  import { DebugManagerInit } from "@graphql-box/debug-manager";
9
10
 
10
11
  export interface UserOptions {
12
+ /**
13
+ * The cache.
14
+ */
15
+ cache: WorkerCachemap;
16
+
11
17
  /**
12
18
  * The curried function to initialize the debug manager.
13
19
  */
@@ -20,6 +26,11 @@ export interface UserOptions {
20
26
  }
21
27
 
22
28
  export interface ConstructorOptions {
29
+ /**
30
+ * The cache.
31
+ */
32
+ cache: WorkerCachemap;
33
+
23
34
  /**
24
35
  * The debug manager.
25
36
  */
package/src/main/index.ts CHANGED
@@ -31,11 +31,16 @@ export default class WorkerClient {
31
31
  errors.push(new TypeError("@graphql-box/client expected options to ba a plain object."));
32
32
  }
33
33
 
34
+ if (!options.cache) {
35
+ errors.push(new TypeError("@graphql-box/client expected options.cache."));
36
+ }
37
+
34
38
  if (!options.worker) {
35
39
  errors.push(new TypeError("@graphql-box/client expected options.worker."));
36
40
  }
37
41
 
38
42
  const constructorOptions: ConstructorOptions = {
43
+ cache: options.cache,
39
44
  worker: options.worker,
40
45
  };
41
46
 
@@ -60,8 +65,8 @@ export default class WorkerClient {
60
65
  private _pending: PendingTracker = new Map();
61
66
  private _worker: Worker;
62
67
 
63
- constructor({ debugManager, worker }: ConstructorOptions) {
64
- this._cache = new WorkerCachemap({ worker });
68
+ constructor({ cache, debugManager, worker }: ConstructorOptions) {
69
+ this._cache = cache;
65
70
  this._debugManager = debugManager || null;
66
71
  this._eventEmitter = new EventEmitter();
67
72
  this._worker = worker;