@graphql-box/worker-client 3.6.3 → 3.7.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.
- package/lib/browser/index.js +1 -1
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/production.analysis.txt +17 -19
- package/lib/main/consts/index.js +1 -5
- package/lib/main/consts/index.js.map +1 -1
- package/lib/main/debug/log-request/index.js +6 -3
- package/lib/main/debug/log-request/index.js.map +1 -1
- package/lib/main/index.js +0 -9
- package/lib/main/index.js.map +1 -1
- package/lib/main/main/index.js +11 -11
- package/lib/main/main/index.js.map +1 -1
- package/lib/module/consts/index.js +0 -2
- package/lib/module/consts/index.js.map +1 -1
- package/lib/module/debug/log-request/index.js +4 -1
- package/lib/module/debug/log-request/index.js.map +1 -1
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/main/index.js +11 -11
- package/lib/module/main/index.js.map +1 -1
- package/lib/types/consts/index.d.ts +0 -2
- package/lib/types/consts/index.d.ts.map +1 -1
- package/lib/types/debug/log-request/index.d.ts.map +1 -1
- package/lib/types/defs/index.d.ts +1 -1
- package/lib/types/defs/index.d.ts.map +1 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/consts/index.ts +0 -3
- package/src/debug/log-request/index.ts +4 -3
- package/src/defs/index.ts +1 -1
- package/src/index.ts +0 -1
- package/src/main/index.ts +9 -9
package/lib/browser/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";import e from"@babel/runtime/helpers/objectWithoutProperties";import t from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/classCallCheck";import n from"@babel/runtime/helpers/createClass";import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/applyDecoratedDescriptor";import a from"lodash/isPlainObject";import c from"lodash/castArray";import i from"@babel/runtime/regenerator";import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.map.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.promise.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import{MUTATION as u,QUERY as p,SUBSCRIPTION as h}from"@graphql-box/core";import{hashRequest as l,EventAsyncIterator as f,deserializeErrors as b,rehydrateCacheMetadata as m,dehydrateCacheMetadata as d,serializeErrors as g}from"@graphql-box/helpers";import v from"eventemitter3";import{v1 as y}from"uuid";import{handleMessage as x}from"@cachemap/core-worker";import{forAwaitEach as w,isAsyncIterable as _}from"iterall";var j,k,q,O="request_executed";function M(){return function(r,n,o){var s,a=o.value;a&&(o.value=(s=t(i.mark((function r(){var n,o,s,c=this,u=arguments;return i.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=u.length,o=new Array(n),s=0;s<n;s++)o[s]=u[s];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(i.mark((function t(r){var n,s,u,p,h,l,f;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=o[2],s=n.debugManager,u=e(n,["debugManager"]),s){t.next=8;break}return t.t0=r,t.next=5,a.apply(c,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=s.now(),s.emit("request_executed",{context:u,options:o[1],request:o[0],stats:{startTime:p}}),t.next=12,a.apply(c,o);case 12:h=t.sent,l=s.now(),f=l-p,r(h),s.emit("request_resolved",{context:u,options:o[1],request:o[0],result:h,stats:{duration:f,endTime:l,startTime:p}});case 17:case"end":return t.stop()}}),t)})));return function(e){return r.apply(this,arguments)}}()));case 5:return r.prev=5,r.t0=r.catch(1),r.abrupt("return",Promise.reject(r.t0));case 8:case"end":return r.stop()}}),r,null,[[1,5]])}))),function(){return s.apply(this,arguments)}))}}function D(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?D(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):D(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var E=(j=M(),k=M(),s((q=function(){function s(n){var c,u=this;r(this,s),o(this,"_cache",void 0),o(this,"_debugManager",void 0),o(this,"_eventEmitter",void 0),o(this,"_pending",new Map),o(this,"_worker",void 0),o(this,"_onMessage",(c=t(i.mark((function t(r){var n,o,s,c,p,h,l,f,d;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,a(n)){t.next=3;break}return t.abrupt("return");case 3:if(s=(o=n).context,c=o.method,p=o.result,"graphqlBox"===o.type&&a(p)){t.next=6;break}return t.abrupt("return");case 6:if(h=p._cacheMetadata,l=e(p,["_cacheMetadata"]),f=b(P(P({},l),{},{requestID:s.boxID})),h&&(f._cacheMetadata=m(h)),"request"!==c){t.next=16;break}if(d=u._pending.get(s.boxID)){t.next=13;break}return t.abrupt("return");case 13:d.resolve(f),t.next=17;break;case 16:("subscribe"===c||s.hasDeferOrStream)&&u._eventEmitter.emit(s.boxID,f);case 17:case"end":return t.stop()}}),t)}))),function(e){return c.apply(this,arguments)}));var p=[];if(a(n)||p.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),n.cache||p.push(new TypeError("@graphql-box/client expected options.cache.")),n.worker||p.push(new TypeError("@graphql-box/client expected options.worker.")),p.length)throw p;this._cache=n.cache,this._debugManager=n.debugManager?n.debugManager():null,this._eventEmitter=new v,this._worker=n.worker,this._addEventListener()}var d,g,x,w,_,j;return n(s,[{key:"cache",get:function(){return this._cache}},{key:"mutate",value:(j=t(i.mark((function e(t){var r,n,o=arguments;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:{},n=o.length>2&&void 0!==o[2]?o[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(u,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return j.apply(this,arguments)})},{key:"query",value:(_=t(i.mark((function e(t){var r,n,o=arguments;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:{},n=o.length>2&&void 0!==o[2]?o[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(p,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return _.apply(this,arguments)})},{key:"request",value:(w=t(i.mark((function e(t){var r,n,o=arguments;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=o.length>1&&void 0!==o[1]?o[1]:{},n=o.length>2&&void 0!==o[2]?o[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(p,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return w.apply(this,arguments)})},{key:"subscribe",value:(x=t(i.mark((function e(t){var r,n=arguments;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.abrupt("return",this._subscribe(t,r,this._getRequestContext(h,t)));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return x.apply(this,arguments)})},{key:"_addEventListener",value:function(){this._worker.addEventListener("message",this._onMessage)}},{key:"_getRequestContext",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return P({boxID:y(),debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t,whitelistHash:l(t)},r)}},{key:"_request",value:(g=t(i.mark((function e(t,r,n){var o,a=this;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n.hasDeferOrStream){e.next=3;break}return e.abrupt("return",new Promise((function(e){a._worker.postMessage({context:s._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),a._pending.set(n.boxID,{resolve:e})})));case 3:return this._worker.postMessage({context:s._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o=new f(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",{errors:c(e.t0)});case 11:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e,t,r){return g.apply(this,arguments)})},{key:"_subscribe",value:(d=t(i.mark((function e(t,r,n){var o;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:s._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new f(this._eventEmitter,n.boxID),e.abrupt("return",o.getIterator());case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",{errors:c(e.t0)});case 9:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t,r){return d.apply(this,arguments)})}],[{key:"_getMessageContext",value:function(e){var t=e.boxID,r=e.hasDeferOrStream;return{boxID:t,hasDeferOrStream:void 0!==r&&r}}}]),s}()).prototype,"_request",[j],Object.getOwnPropertyDescriptor(q.prototype,"_request"),q.prototype),s(q.prototype,"_subscribe",[k],Object.getOwnPropertyDescriptor(q.prototype,"_subscribe"),q.prototype),q);function C(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function I(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?C(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):C(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var B=self,S=B.addEventListener,T=B.postMessage;function R(){return(R=t(i.mark((function t(r,n,o,s,a){var c,u,p,h,l;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.request(r,o,s);case 2:if(c=t.sent,_(c)){t.next=9;break}return p=(u=c)._cacheMetadata,h=e(u,["_cacheMetadata"]),l=I({},h),p&&(l._cacheMetadata=d(p)),T({context:s,method:n,result:g(l),type:"graphqlBox"}),t.abrupt("return");case 9:w(c,(function(t){var r=t._cacheMetadata,o=I({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=d(r)),T({context:s,method:n,result:g(o),type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function L(){return(L=t(i.mark((function t(r,n,o,s,a){var c;return i.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.subscribe(r,o,s);case 2:if(c=t.sent,_(c)){t.next=6;break}return T({context:s,method:n,result:g(c),type:"graphqlBox"}),t.abrupt("return");case 6:w(c,(function(t){var r=t._cacheMetadata,o=I({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=d(r)),T({context:s,method:n,result:g(o),type:"graphqlBox"})}));case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function A(e,t){var r=e,n=r.context,o=r.method,s=r.options,a=r.request;"request"===o?function(e,t,r,n,o){R.apply(this,arguments)}(a,o,s,n,t):"subscribe"===o&&function(e,t,r,n,o){L.apply(this,arguments)}(a,o,s,n,t)}function F(e){return G.apply(this,arguments)}function G(){return(G=t(i.mark((function e(t){var r,n;return i.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(a(t)){var n=t.type;"graphqlBox"===n?A(t,r):"cachemap"===n&&r.cache&&x(t,r.cache)}},r=t.client,S("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default E;export{O as REQUEST_EXECUTED,F as registerWorker};
|
|
1
|
+
import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";import e from"@babel/runtime/helpers/objectWithoutProperties";import t from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/classCallCheck";import n from"@babel/runtime/helpers/createClass";import s from"@babel/runtime/helpers/defineProperty";import o from"@babel/runtime/helpers/applyDecoratedDescriptor";import a from"lodash/isPlainObject";import c from"lodash/castArray";import u from"@babel/runtime/regenerator";import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.map.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.promise.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import{REQUEST_RESOLVED as i,REQUEST_EXECUTED as p,MUTATION as h,QUERY as l,SUBSCRIPTION as f}from"@graphql-box/core";import{hashRequest as m,EventAsyncIterator as b,deserializeErrors as d,rehydrateCacheMetadata as g,dehydrateCacheMetadata as v,serializeErrors as y}from"@graphql-box/helpers";import w from"eventemitter3";import{v1 as x}from"uuid";import{handleMessage as j}from"@cachemap/core-worker";import{forAwaitEach as _,isAsyncIterable as q}from"iterall";var k,O,M;function D(){return function(r,n,s){var o,a=s.value;a&&(s.value=(o=t(u.mark((function r(){var n,s,o,c=this,h=arguments;return u.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=h.length,s=new Array(n),o=0;o<n;o++)s[o]=h[o];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(u.mark((function t(r){var n,o,h,l,f,m,b,d;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=s[2],o=n.debugManager,h=n.requestID,l=e(n,["debugManager","requestID"]),o){t.next=8;break}return t.t0=r,t.next=5,a.apply(c,s);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return f=o.now(),o.emit(p,{context:l,options:s[1],request:s[0],requestID:h,stats:{startTime:f}}),t.next=12,a.apply(c,s);case 12:m=t.sent,b=o.now(),d=b-f,r(m),o.emit(i,{context:l,options:s[1],request:s[0],requestID:h,result:m,stats:{duration:d,endTime:b,startTime:f}});case 17:case"end":return t.stop()}}),t)})));return function(e){return r.apply(this,arguments)}}()));case 5:return r.prev=5,r.t0=r.catch(1),r.abrupt("return",Promise.reject(r.t0));case 8:case"end":return r.stop()}}),r,null,[[1,5]])}))),function(){return o.apply(this,arguments)}))}}function P(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function E(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?P(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):P(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var I=(k=D(),O=D(),o((M=function(){function o(n){var c,i=this;r(this,o),s(this,"_cache",void 0),s(this,"_debugManager",void 0),s(this,"_eventEmitter",void 0),s(this,"_pending",new Map),s(this,"_worker",void 0),s(this,"_onMessage",(c=t(u.mark((function t(r){var n,s,o,c,p,h,l,f,m;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,a(n)){t.next=3;break}return t.abrupt("return");case 3:if(o=(s=n).context,c=s.method,p=s.result,"graphqlBox"===s.type&&a(p)){t.next=6;break}return t.abrupt("return");case 6:if(h=p._cacheMetadata,l=e(p,["_cacheMetadata"]),f=d(E(E({},l),{},{requestID:o.requestID})),h&&(f._cacheMetadata=g(h)),"request"!==c){t.next=16;break}if(m=i._pending.get(o.requestID)){t.next=13;break}return t.abrupt("return");case 13:m.resolve(f),t.next=17;break;case 16:("subscribe"===c||o.hasDeferOrStream)&&i._eventEmitter.emit(o.requestID,f);case 17:case"end":return t.stop()}}),t)}))),function(e){return c.apply(this,arguments)}));var p=[];if(a(n)||p.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),n.cache||p.push(new TypeError("@graphql-box/client expected options.cache.")),n.worker||p.push(new TypeError("@graphql-box/client expected options.worker.")),p.length)throw p;this._cache=n.cache,this._debugManager=n.debugManager?n.debugManager():null,this._eventEmitter=new w,this._worker=n.worker,this._addEventListener()}var i,p,v,y,j,_;return n(o,[{key:"cache",get:function(){return this._cache}},{key:"mutate",value:(_=t(u.mark((function e(t){var r,n,s=arguments;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=s.length>1&&void 0!==s[1]?s[1]:{},n=s.length>2&&void 0!==s[2]?s[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(h,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return _.apply(this,arguments)})},{key:"query",value:(j=t(u.mark((function e(t){var r,n,s=arguments;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=s.length>1&&void 0!==s[1]?s[1]:{},n=s.length>2&&void 0!==s[2]?s[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(l,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return j.apply(this,arguments)})},{key:"request",value:(y=t(u.mark((function e(t){var r,n,s=arguments;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=s.length>1&&void 0!==s[1]?s[1]:{},n=s.length>2&&void 0!==s[2]?s[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(l,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return y.apply(this,arguments)})},{key:"subscribe",value:(v=t(u.mark((function e(t){var r,n=arguments;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.abrupt("return",this._subscribe(t,r,this._getRequestContext(f,t)));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return v.apply(this,arguments)})},{key:"_addEventListener",value:function(){this._worker.addEventListener("message",this._onMessage)}},{key:"_getRequestContext",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return E({debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t,requestID:x(),whitelistHash:m(t)},r)}},{key:"_request",value:(p=t(u.mark((function e(t,r,n){var s,a=this;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n.hasDeferOrStream){e.next=3;break}return e.abrupt("return",new Promise((function(e){a._worker.postMessage({context:o._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),a._pending.set(n.requestID,{resolve:e})})));case 3:return this._worker.postMessage({context:o._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),s=new b(this._eventEmitter,n.requestID),e.abrupt("return",s.getIterator());case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",{errors:c(e.t0)});case 11:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e,t,r){return p.apply(this,arguments)})},{key:"_subscribe",value:(i=t(u.mark((function e(t,r,n){var s;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:o._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),s=new b(this._eventEmitter,n.requestID),e.abrupt("return",s.getIterator());case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",{errors:c(e.t0)});case 9:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t,r){return i.apply(this,arguments)})}],[{key:"_getMessageContext",value:function(e){var t=e.hasDeferOrStream;return{hasDeferOrStream:void 0!==t&&t,requestID:e.requestID}}}]),o}()).prototype,"_request",[k],Object.getOwnPropertyDescriptor(M.prototype,"_request"),M.prototype),o(M.prototype,"_subscribe",[O],Object.getOwnPropertyDescriptor(M.prototype,"_subscribe"),M.prototype),M);function C(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function B(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?C(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):C(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var S=self,T=S.addEventListener,R=S.postMessage;function L(){return(L=t(u.mark((function t(r,n,s,o,a){var c,i,p,h,l;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.request(r,s,o);case 2:if(c=t.sent,q(c)){t.next=9;break}return p=(i=c)._cacheMetadata,h=e(i,["_cacheMetadata"]),l=B({},h),p&&(l._cacheMetadata=v(p)),R({context:o,method:n,result:y(l),type:"graphqlBox"}),t.abrupt("return");case 9:_(c,(function(t){var r=t._cacheMetadata,s=B({},e(t,["_cacheMetadata"]));r&&(s._cacheMetadata=v(r)),R({context:o,method:n,result:y(s),type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function A(){return(A=t(u.mark((function t(r,n,s,o,a){var c;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,a.subscribe(r,s,o);case 2:if(c=t.sent,q(c)){t.next=6;break}return R({context:o,method:n,result:y(c),type:"graphqlBox"}),t.abrupt("return");case 6:_(c,(function(t){var r=t._cacheMetadata,s=B({},e(t,["_cacheMetadata"]));r&&(s._cacheMetadata=v(r)),R({context:o,method:n,result:y(s),type:"graphqlBox"})}));case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function F(e,t){var r=e,n=r.context,s=r.method,o=r.options,a=r.request;"request"===s?function(e,t,r,n,s){L.apply(this,arguments)}(a,s,o,n,t):"subscribe"===s&&function(e,t,r,n,s){A.apply(this,arguments)}(a,s,o,n,t)}function G(e){return H.apply(this,arguments)}function H(){return(H=t(u.mark((function e(t){var r,n;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(a(t)){var n=t.type;"graphqlBox"===n?F(t,r):"cachemap"===n&&r.cache&&j(t,r.cache)}},r=t.client,T("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default I;export{G as registerWorker};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/lib/browser/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../worker-client/src/consts/index.ts","../worker-client/src/debug/log-request/index.ts","../worker-client/src/main/index.ts","../worker-client/src/register-worker/index.ts"],"sourcesContent":["export const REQUEST_EXECUTED = \"request_executed\";\nexport const REQUEST_RESOLVED = \"request_resolved\";\n\nexport const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n","import { RequestContext } from \"@graphql-box/core\";\nimport { REQUEST_EXECUTED, REQUEST_RESOLVED } from \"../../consts\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n","import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.boxID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n","import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata, serializeErrors } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const requestResult = await client.request(request, options, context);\n\n if (!isAsyncIterable(requestResult)) {\n const { _cacheMetadata, ...otherProps } = requestResult as MaybeRequestResult;\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(requestResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nasync function handleSubscription(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const subscribeResult = await client.subscribe(request, options, context);\n\n if (!isAsyncIterable(subscribeResult)) {\n postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"names":["REQUEST_EXECUTED","logRequest","_target","_propertyName","descriptor","method","value","args","Promise","resolve","debugManager","otherContext","apply","_this","startTime","now","emit","context","options","request","stats","result","endTime","duration","reject","WorkerClient","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","deserializeErrors","requestID","boxID","rehydrateCacheMetadata","pending","_pending","get","hasDeferOrStream","_eventEmitter","errors","push","TypeError","cache","worker","length","_cache","_debugManager","EventEmitter","_worker","_addEventListener","this","_request","_getRequestContext","MUTATION","QUERY","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","uuid","fieldTypeMap","operationName","queryFiltered","whitelistHash","hashRequest","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","_castArray","self","client","requestResult","isAsyncIterable","dehydrateCacheMetadata","serializeErrors","forAwaitEach","subscribe","subscribeResult","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","handleCachemapMessage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../worker-client/src/consts/index.ts","../worker-client/src/debug/log-request/index.ts","../worker-client/src/main/index.ts","../worker-client/src/register-worker/index.ts"],"sourcesContent":["export const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n","import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, requestID, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n","import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ hasDeferOrStream = false, requestID }: RequestContext): MessageContext {\n return { hasDeferOrStream, requestID };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n requestID: uuid(),\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.requestID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.requestID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.requestID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.requestID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n","import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata, serializeErrors } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const requestResult = await client.request(request, options, context);\n\n if (!isAsyncIterable(requestResult)) {\n const { _cacheMetadata, ...otherProps } = requestResult as MaybeRequestResult;\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(requestResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nasync function handleSubscription(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const subscribeResult = await client.subscribe(request, options, context);\n\n if (!isAsyncIterable(subscribeResult)) {\n postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"names":["logRequest","_target","_propertyName","descriptor","method","value","args","Promise","resolve","debugManager","requestID","otherContext","apply","_this","startTime","now","emit","REQUEST_EXECUTED","context","options","request","stats","result","endTime","duration","REQUEST_RESOLVED","reject","WorkerClient","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","deserializeErrors","rehydrateCacheMetadata","pending","_pending","get","hasDeferOrStream","_eventEmitter","errors","push","TypeError","cache","worker","length","_cache","_debugManager","EventEmitter","_worker","_addEventListener","this","_request","_getRequestContext","MUTATION","QUERY","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","uuid","whitelistHash","hashRequest","_this2","postMessage","_getMessageContext","set","eventAsyncIterator","EventAsyncIterator","getIterator","_castArray","self","client","requestResult","isAsyncIterable","dehydrateCacheMetadata","serializeErrors","forAwaitEach","subscribe","subscribeResult","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","handleCachemapMessage"],"mappings":"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"}
|
|
@@ -1,55 +1,53 @@
|
|
|
1
1
|
-----------------------------
|
|
2
2
|
Rollup File Analysis
|
|
3
3
|
-----------------------------
|
|
4
|
-
bundle size: 23.
|
|
5
|
-
original size:
|
|
4
|
+
bundle size: 23.953 KB
|
|
5
|
+
original size: 11.951 KB
|
|
6
6
|
code reduction: 0 %
|
|
7
7
|
module count: 6
|
|
8
8
|
|
|
9
9
|
███████████████████████████░░░░░░░░░░░░░░░░░░░░░░░
|
|
10
10
|
file: /src/main/index.ts
|
|
11
|
-
bundle space: 54.
|
|
12
|
-
rendered size: 13.
|
|
13
|
-
original size: 5.
|
|
11
|
+
bundle space: 54.84 %
|
|
12
|
+
rendered size: 13.136 KB
|
|
13
|
+
original size: 5.563 KB
|
|
14
14
|
code reduction: 0 %
|
|
15
15
|
dependents: 1
|
|
16
16
|
- /src/index.ts
|
|
17
17
|
|
|
18
18
|
█████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
19
19
|
file: /src/register-worker/index.ts
|
|
20
|
-
bundle space: 26.
|
|
20
|
+
bundle space: 26.58 %
|
|
21
21
|
rendered size: 6.366 KB
|
|
22
22
|
original size: 3.377 KB
|
|
23
23
|
code reduction: 0 %
|
|
24
24
|
dependents: 1
|
|
25
25
|
- /src/index.ts
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
█████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
28
28
|
file: /src/debug/log-request/index.ts
|
|
29
|
-
bundle space:
|
|
30
|
-
rendered size: 4.
|
|
31
|
-
original size: 1.
|
|
29
|
+
bundle space: 18.01 %
|
|
30
|
+
rendered size: 4.314 KB
|
|
31
|
+
original size: 1.481 KB
|
|
32
32
|
code reduction: 0 %
|
|
33
33
|
dependents: 1
|
|
34
34
|
- /src/main/index.ts
|
|
35
35
|
|
|
36
36
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
37
37
|
file: /src/consts/index.ts
|
|
38
|
-
bundle space: 0.
|
|
39
|
-
rendered size:
|
|
40
|
-
original size:
|
|
41
|
-
code reduction:
|
|
42
|
-
dependents:
|
|
43
|
-
- /src/debug/log-request/index.ts
|
|
38
|
+
bundle space: 0.57 %
|
|
39
|
+
rendered size: 137 Bytes
|
|
40
|
+
original size: 185 Bytes
|
|
41
|
+
code reduction: 25.95 %
|
|
42
|
+
dependents: 2
|
|
44
43
|
- /src/main/index.ts
|
|
45
44
|
- /src/register-worker/index.ts
|
|
46
|
-
- /src/index.ts
|
|
47
45
|
|
|
48
46
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
49
47
|
file: /src/defs/index.ts
|
|
50
48
|
bundle space: 0 %
|
|
51
49
|
rendered size: 0 Byte
|
|
52
|
-
original size: 1.
|
|
50
|
+
original size: 1.224 KB
|
|
53
51
|
code reduction: 100 %
|
|
54
52
|
dependents: 1
|
|
55
53
|
- /src/index.ts
|
|
@@ -58,7 +56,7 @@ dependents: 1
|
|
|
58
56
|
file: /src/index.ts
|
|
59
57
|
bundle space: 0 %
|
|
60
58
|
rendered size: 0 Byte
|
|
61
|
-
original size:
|
|
59
|
+
original size: 121 Bytes
|
|
62
60
|
code reduction: 100 %
|
|
63
61
|
dependents: 0
|
|
64
62
|
|
package/lib/main/consts/index.js
CHANGED
|
@@ -3,11 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.CACHEMAP = exports.GRAPHQL_BOX = exports.MESSAGE = exports.SUBSCRIBE = exports.REQUEST =
|
|
7
|
-
const REQUEST_EXECUTED = "request_executed";
|
|
8
|
-
exports.REQUEST_EXECUTED = REQUEST_EXECUTED;
|
|
9
|
-
const REQUEST_RESOLVED = "request_resolved";
|
|
10
|
-
exports.REQUEST_RESOLVED = REQUEST_RESOLVED;
|
|
6
|
+
exports.CACHEMAP = exports.GRAPHQL_BOX = exports.MESSAGE = exports.SUBSCRIBE = exports.REQUEST = void 0;
|
|
11
7
|
const REQUEST = "request";
|
|
12
8
|
exports.REQUEST = REQUEST;
|
|
13
9
|
const SUBSCRIBE = "subscribe";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/consts/index.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/consts/index.ts"],"names":["REQUEST","SUBSCRIBE","MESSAGE","GRAPHQL_BOX","CACHEMAP"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAG,SAAhB;;AACA,MAAMC,SAAS,GAAG,WAAlB;;AAEA,MAAMC,OAAO,GAAG,SAAhB;;AAEA,MAAMC,WAAW,GAAG,YAApB;;AACA,MAAMC,QAAQ,GAAG,UAAjB","sourcesContent":["export const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n"],"file":"index.js"}
|
|
@@ -7,7 +7,7 @@ exports.default = logRequest;
|
|
|
7
7
|
|
|
8
8
|
require("core-js/modules/es.promise.js");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _core = require("@graphql-box/core");
|
|
11
11
|
|
|
12
12
|
function logRequest() {
|
|
13
13
|
return (_target, _propertyName, descriptor) => {
|
|
@@ -19,6 +19,7 @@ function logRequest() {
|
|
|
19
19
|
return new Promise(async resolve => {
|
|
20
20
|
const {
|
|
21
21
|
debugManager,
|
|
22
|
+
requestID,
|
|
22
23
|
...otherContext
|
|
23
24
|
} = args[2];
|
|
24
25
|
|
|
@@ -28,10 +29,11 @@ function logRequest() {
|
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
const startTime = debugManager.now();
|
|
31
|
-
debugManager.emit(
|
|
32
|
+
debugManager.emit(_core.REQUEST_EXECUTED, {
|
|
32
33
|
context: otherContext,
|
|
33
34
|
options: args[1],
|
|
34
35
|
request: args[0],
|
|
36
|
+
requestID,
|
|
35
37
|
stats: {
|
|
36
38
|
startTime
|
|
37
39
|
}
|
|
@@ -40,10 +42,11 @@ function logRequest() {
|
|
|
40
42
|
const endTime = debugManager.now();
|
|
41
43
|
const duration = endTime - startTime;
|
|
42
44
|
resolve(result);
|
|
43
|
-
debugManager.emit(
|
|
45
|
+
debugManager.emit(_core.REQUEST_RESOLVED, {
|
|
44
46
|
context: otherContext,
|
|
45
47
|
options: args[1],
|
|
46
48
|
request: args[0],
|
|
49
|
+
requestID,
|
|
47
50
|
result,
|
|
48
51
|
stats: {
|
|
49
52
|
duration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","emit","REQUEST_EXECUTED","context","options","request","stats","result","endTime","duration","REQUEST_RESOLVED","error","reject"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","requestID","otherContext","apply","startTime","now","emit","REQUEST_EXECUTED","context","options","request","stats","result","endTime","duration","REQUEST_RESOLVED","error","reject"],"mappings":";;;;;;;;;AAAA;;AAEe,SAASA,UAAT,GAAsB;AACnC,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,UAAI;AACF,eAAO,IAAIC,OAAJ,CAAY,MAAMC,OAAN,IAAiB;AAClC,gBAAM;AAAEC,YAAAA,YAAF;AAAgBC,YAAAA,SAAhB;AAA2B,eAAGC;AAA9B,cAA+CL,IAAI,CAAC,CAAD,CAAzD;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACS,KAAP,CAAa,IAAb,EAAmBN,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMO,SAAS,GAAGJ,YAAY,CAACK,GAAb,EAAlB;AAEAL,UAAAA,YAAY,CAACM,IAAb,CAAkBC,sBAAlB,EAAoC;AAClCC,YAAAA,OAAO,EAAEN,YADyB;AAElCO,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAFqB;AAGlCa,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAHqB;AAIlCI,YAAAA,SAJkC;AAKlCU,YAAAA,KAAK,EAAE;AAAEP,cAAAA;AAAF;AAL2B,WAApC;AAQA,gBAAMQ,MAAM,GAAG,MAAMlB,MAAM,CAACS,KAAP,CAAa,IAAb,EAAmBN,IAAnB,CAArB;AACA,gBAAMgB,OAAO,GAAGb,YAAY,CAACK,GAAb,EAAhB;AACA,gBAAMS,QAAQ,GAAGD,OAAO,GAAGT,SAA3B;AACAL,UAAAA,OAAO,CAACa,MAAD,CAAP;AAEAZ,UAAAA,YAAY,CAACM,IAAb,CAAkBS,sBAAlB,EAAoC;AAClCP,YAAAA,OAAO,EAAEN,YADyB;AAElCO,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAFqB;AAGlCa,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAHqB;AAIlCI,YAAAA,SAJkC;AAKlCW,YAAAA,MALkC;AAMlCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBT,cAAAA;AAArB;AAN2B,WAApC;AAQD,SA/BM,CAAP;AAgCD,OAjCD,CAiCE,OAAOY,KAAP,EAAc;AACd,eAAOlB,OAAO,CAACmB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KArCD;AAsCD,GA9CD;AA+CD","sourcesContent":["import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, requestID, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n"],"file":"index.js"}
|
package/lib/main/index.js
CHANGED
|
@@ -6,15 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
var _exportNames = {
|
|
9
|
-
REQUEST_EXECUTED: true,
|
|
10
9
|
registerWorker: true
|
|
11
10
|
};
|
|
12
|
-
Object.defineProperty(exports, "REQUEST_EXECUTED", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _consts.REQUEST_EXECUTED;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
11
|
Object.defineProperty(exports, "default", {
|
|
19
12
|
enumerable: true,
|
|
20
13
|
get: function () {
|
|
@@ -28,8 +21,6 @@ Object.defineProperty(exports, "registerWorker", {
|
|
|
28
21
|
}
|
|
29
22
|
});
|
|
30
23
|
|
|
31
|
-
var _consts = require("./consts");
|
|
32
|
-
|
|
33
24
|
var _defs = require("./defs");
|
|
34
25
|
|
|
35
26
|
Object.keys(_defs).forEach(function (key) {
|
package/lib/main/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA","sourcesContent":["export * from \"./defs\";\nexport { default } from \"./main\";\nexport { default as registerWorker } from \"./register-worker\";\n"],"file":"index.js"}
|
package/lib/main/main/index.js
CHANGED
|
@@ -33,12 +33,12 @@ var _dec, _dec2, _class;
|
|
|
33
33
|
|
|
34
34
|
let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.default)(), (_class = class WorkerClient {
|
|
35
35
|
static _getMessageContext({
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
hasDeferOrStream = false,
|
|
37
|
+
requestID
|
|
38
38
|
}) {
|
|
39
39
|
return {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
hasDeferOrStream,
|
|
41
|
+
requestID
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
|
|
@@ -71,7 +71,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
71
71
|
...otherProps
|
|
72
72
|
} = result;
|
|
73
73
|
const response = (0, _helpers.deserializeErrors)({ ...otherProps,
|
|
74
|
-
requestID: context.
|
|
74
|
+
requestID: context.requestID
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
if (_cacheMetadata) {
|
|
@@ -79,7 +79,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
if (method === _consts.REQUEST) {
|
|
82
|
-
const pending = this._pending.get(context.
|
|
82
|
+
const pending = this._pending.get(context.requestID);
|
|
83
83
|
|
|
84
84
|
if (!pending) {
|
|
85
85
|
return;
|
|
@@ -87,7 +87,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
87
87
|
|
|
88
88
|
pending.resolve(response);
|
|
89
89
|
} else if (method === _consts.SUBSCRIBE || context.hasDeferOrStream) {
|
|
90
|
-
this._eventEmitter.emit(context.
|
|
90
|
+
this._eventEmitter.emit(context.requestID, response);
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
const errors = [];
|
|
@@ -142,13 +142,13 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
142
142
|
|
|
143
143
|
_getRequestContext(operation, request, context = {}) {
|
|
144
144
|
return {
|
|
145
|
-
boxID: (0, _uuid.v1)(),
|
|
146
145
|
debugManager: this._debugManager,
|
|
147
146
|
fieldTypeMap: new Map(),
|
|
148
147
|
operation,
|
|
149
148
|
operationName: "",
|
|
150
149
|
queryFiltered: false,
|
|
151
150
|
request,
|
|
151
|
+
requestID: (0, _uuid.v1)(),
|
|
152
152
|
whitelistHash: (0, _helpers.hashRequest)(request),
|
|
153
153
|
...context
|
|
154
154
|
};
|
|
@@ -166,7 +166,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
166
166
|
type: _consts.GRAPHQL_BOX
|
|
167
167
|
});
|
|
168
168
|
|
|
169
|
-
this._pending.set(context.
|
|
169
|
+
this._pending.set(context.requestID, {
|
|
170
170
|
resolve
|
|
171
171
|
});
|
|
172
172
|
});
|
|
@@ -180,7 +180,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
180
180
|
type: _consts.GRAPHQL_BOX
|
|
181
181
|
});
|
|
182
182
|
|
|
183
|
-
const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.
|
|
183
|
+
const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.requestID);
|
|
184
184
|
return eventAsyncIterator.getIterator();
|
|
185
185
|
} catch (error) {
|
|
186
186
|
return {
|
|
@@ -199,7 +199,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
199
199
|
type: _consts.GRAPHQL_BOX
|
|
200
200
|
});
|
|
201
201
|
|
|
202
|
-
const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.
|
|
202
|
+
const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.requestID);
|
|
203
203
|
return eventAsyncIterator.getIterator();
|
|
204
204
|
} catch (error) {
|
|
205
205
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","_getMessageContext","boxID","hasDeferOrStream","constructor","options","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","requestID","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","EventEmitter","_worker","_addEventListener","mutate","request","_request","_getRequestContext","MUTATION","query","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator","error"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.boxID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/main/index.ts"],"names":["WorkerClient","_getMessageContext","hasDeferOrStream","requestID","constructor","options","Map","data","context","method","result","type","GRAPHQL_BOX","_cacheMetadata","otherProps","response","REQUEST","pending","_pending","get","resolve","SUBSCRIBE","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","EventEmitter","_worker","_addEventListener","mutate","request","_request","_getRequestContext","MUTATION","query","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","EventAsyncIterator","getIterator","error"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ hasDeferOrStream = false, requestID }: RequestContext): MessageContext {\n return { hasDeferOrStream, requestID };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n requestID: uuid(),\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.requestID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.requestID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.requestID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.requestID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/consts/index.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/consts/index.ts"],"names":["REQUEST","SUBSCRIBE","MESSAGE","GRAPHQL_BOX","CACHEMAP"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,SAAhB;AACP,OAAO,MAAMC,SAAS,GAAG,WAAlB;AAEP,OAAO,MAAMC,OAAO,GAAG,SAAhB;AAEP,OAAO,MAAMC,WAAW,GAAG,YAApB;AACP,OAAO,MAAMC,QAAQ,GAAG,UAAjB","sourcesContent":["export const REQUEST = \"request\";\nexport const SUBSCRIBE = \"subscribe\";\n\nexport const MESSAGE = \"message\";\n\nexport const GRAPHQL_BOX = \"graphqlBox\";\nexport const CACHEMAP = \"cachemap\";\n"],"file":"index.js"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "core-js/modules/es.promise.js";
|
|
2
|
-
import { REQUEST_EXECUTED, REQUEST_RESOLVED } from "
|
|
2
|
+
import { REQUEST_EXECUTED, REQUEST_RESOLVED } from "@graphql-box/core";
|
|
3
3
|
export default function logRequest() {
|
|
4
4
|
return (_target, _propertyName, descriptor) => {
|
|
5
5
|
const method = descriptor.value;
|
|
@@ -10,6 +10,7 @@ export default function logRequest() {
|
|
|
10
10
|
return new Promise(async resolve => {
|
|
11
11
|
const {
|
|
12
12
|
debugManager,
|
|
13
|
+
requestID,
|
|
13
14
|
...otherContext
|
|
14
15
|
} = args[2];
|
|
15
16
|
|
|
@@ -23,6 +24,7 @@ export default function logRequest() {
|
|
|
23
24
|
context: otherContext,
|
|
24
25
|
options: args[1],
|
|
25
26
|
request: args[0],
|
|
27
|
+
requestID,
|
|
26
28
|
stats: {
|
|
27
29
|
startTime
|
|
28
30
|
}
|
|
@@ -35,6 +37,7 @@ export default function logRequest() {
|
|
|
35
37
|
context: otherContext,
|
|
36
38
|
options: args[1],
|
|
37
39
|
request: args[0],
|
|
40
|
+
requestID,
|
|
38
41
|
result,
|
|
39
42
|
stats: {
|
|
40
43
|
duration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["REQUEST_EXECUTED","REQUEST_RESOLVED","logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","emit","context","options","request","stats","result","endTime","duration","error","reject"],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["REQUEST_EXECUTED","REQUEST_RESOLVED","logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","requestID","otherContext","apply","startTime","now","emit","context","options","request","stats","result","endTime","duration","error","reject"],"mappings":";AAAA,SAASA,gBAAT,EAA2BC,gBAA3B,QAAmE,mBAAnE;AAEA,eAAe,SAASC,UAAT,GAAsB;AACnC,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,UAAI;AACF,eAAO,IAAIC,OAAJ,CAAY,MAAMC,OAAN,IAAiB;AAClC,gBAAM;AAAEC,YAAAA,YAAF;AAAgBC,YAAAA,SAAhB;AAA2B,eAAGC;AAA9B,cAA+CL,IAAI,CAAC,CAAD,CAAzD;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACS,KAAP,CAAa,IAAb,EAAmBN,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMO,SAAS,GAAGJ,YAAY,CAACK,GAAb,EAAlB;AAEAL,UAAAA,YAAY,CAACM,IAAb,CAAkBlB,gBAAlB,EAAoC;AAClCmB,YAAAA,OAAO,EAAEL,YADyB;AAElCM,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAFqB;AAGlCY,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAHqB;AAIlCI,YAAAA,SAJkC;AAKlCS,YAAAA,KAAK,EAAE;AAAEN,cAAAA;AAAF;AAL2B,WAApC;AAQA,gBAAMO,MAAM,GAAG,MAAMjB,MAAM,CAACS,KAAP,CAAa,IAAb,EAAmBN,IAAnB,CAArB;AACA,gBAAMe,OAAO,GAAGZ,YAAY,CAACK,GAAb,EAAhB;AACA,gBAAMQ,QAAQ,GAAGD,OAAO,GAAGR,SAA3B;AACAL,UAAAA,OAAO,CAACY,MAAD,CAAP;AAEAX,UAAAA,YAAY,CAACM,IAAb,CAAkBjB,gBAAlB,EAAoC;AAClCkB,YAAAA,OAAO,EAAEL,YADyB;AAElCM,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAFqB;AAGlCY,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAHqB;AAIlCI,YAAAA,SAJkC;AAKlCU,YAAAA,MALkC;AAMlCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBR,cAAAA;AAArB;AAN2B,WAApC;AAQD,SA/BM,CAAP;AAgCD,OAjCD,CAiCE,OAAOU,KAAP,EAAc;AACd,eAAOhB,OAAO,CAACiB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KArCD;AAsCD,GA9CD;AA+CD","sourcesContent":["import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\n\nexport default function logRequest() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n try {\n return new Promise(async resolve => {\n const { debugManager, requestID, ...otherContext } = args[2] as RequestContext;\n\n if (!debugManager) {\n resolve(await method.apply(this, args));\n return;\n }\n\n const startTime = debugManager.now();\n\n debugManager.emit(REQUEST_EXECUTED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n stats: { startTime },\n });\n\n const result = await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve(result);\n\n debugManager.emit(REQUEST_RESOLVED, {\n context: otherContext,\n options: args[1],\n request: args[0],\n requestID,\n result,\n stats: { duration, endTime, startTime },\n });\n });\n } catch (error) {\n return Promise.reject(error);\n }\n };\n };\n}\n"],"file":"index.js"}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["default","registerWorker"],"mappings":"AAAA,cAAc,QAAd;AACA,SAASA,OAAT,QAAwB,QAAxB;AACA,SAASA,OAAO,IAAIC,cAApB,QAA0C,mBAA1C","sourcesContent":["export * from \"./defs\";\nexport { default } from \"./main\";\nexport { default as registerWorker } from \"./register-worker\";\n"],"file":"index.js"}
|
package/lib/module/main/index.js
CHANGED
|
@@ -14,12 +14,12 @@ import { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from "../consts";
|
|
|
14
14
|
import logRequest from "../debug/log-request";
|
|
15
15
|
let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class WorkerClient {
|
|
16
16
|
static _getMessageContext({
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
hasDeferOrStream = false,
|
|
18
|
+
requestID
|
|
19
19
|
}) {
|
|
20
20
|
return {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
hasDeferOrStream,
|
|
22
|
+
requestID
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -57,7 +57,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
57
57
|
...otherProps
|
|
58
58
|
} = result;
|
|
59
59
|
const response = deserializeErrors({ ...otherProps,
|
|
60
|
-
requestID: context.
|
|
60
|
+
requestID: context.requestID
|
|
61
61
|
});
|
|
62
62
|
|
|
63
63
|
if (_cacheMetadata) {
|
|
@@ -65,7 +65,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
if (method === REQUEST) {
|
|
68
|
-
const pending = this._pending.get(context.
|
|
68
|
+
const pending = this._pending.get(context.requestID);
|
|
69
69
|
|
|
70
70
|
if (!pending) {
|
|
71
71
|
return;
|
|
@@ -73,7 +73,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
73
73
|
|
|
74
74
|
pending.resolve(response);
|
|
75
75
|
} else if (method === SUBSCRIBE || context.hasDeferOrStream) {
|
|
76
|
-
this._eventEmitter.emit(context.
|
|
76
|
+
this._eventEmitter.emit(context.requestID, response);
|
|
77
77
|
}
|
|
78
78
|
});
|
|
79
79
|
|
|
@@ -129,13 +129,13 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
129
129
|
|
|
130
130
|
_getRequestContext(operation, request, context = {}) {
|
|
131
131
|
return {
|
|
132
|
-
boxID: uuid(),
|
|
133
132
|
debugManager: this._debugManager,
|
|
134
133
|
fieldTypeMap: new Map(),
|
|
135
134
|
operation,
|
|
136
135
|
operationName: "",
|
|
137
136
|
queryFiltered: false,
|
|
138
137
|
request,
|
|
138
|
+
requestID: uuid(),
|
|
139
139
|
whitelistHash: hashRequest(request),
|
|
140
140
|
...context
|
|
141
141
|
};
|
|
@@ -153,7 +153,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
153
153
|
type: GRAPHQL_BOX
|
|
154
154
|
});
|
|
155
155
|
|
|
156
|
-
this._pending.set(context.
|
|
156
|
+
this._pending.set(context.requestID, {
|
|
157
157
|
resolve
|
|
158
158
|
});
|
|
159
159
|
});
|
|
@@ -167,7 +167,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
167
167
|
type: GRAPHQL_BOX
|
|
168
168
|
});
|
|
169
169
|
|
|
170
|
-
const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.
|
|
170
|
+
const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.requestID);
|
|
171
171
|
return eventAsyncIterator.getIterator();
|
|
172
172
|
} catch (error) {
|
|
173
173
|
return {
|
|
@@ -186,7 +186,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
186
186
|
type: GRAPHQL_BOX
|
|
187
187
|
});
|
|
188
188
|
|
|
189
|
-
const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.
|
|
189
|
+
const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.requestID);
|
|
190
190
|
return eventAsyncIterator.getIterator();
|
|
191
191
|
} catch (error) {
|
|
192
192
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/main/index.ts"],"names":["MUTATION","QUERY","SUBSCRIPTION","EventAsyncIterator","deserializeErrors","hashRequest","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","WorkerClient","_getMessageContext","boxID","hasDeferOrStream","constructor","options","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","requestID","pending","_pending","get","resolve","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","_worker","_addEventListener","mutate","request","_request","_getRequestContext","query","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","getIterator","error"],"mappings":";;;;;;;;AACA,SAEEA,QAFF,EAKEC,KALF,EAQEC,YARF,QAUO,mBAVP;AAWA,SAASC,kBAAT,EAA6BC,iBAA7B,EAAgDC,WAAhD,EAA6DC,sBAA7D,QAA2F,sBAA3F;AACA,OAAOC,YAAP,MAAyB,eAAzB;AAEA,SAASC,EAAE,IAAIC,IAAf,QAA2B,MAA3B;AACA,SAASC,WAAT,EAAsBC,OAAtB,EAA+BC,OAA/B,EAAwCC,SAAxC,QAAyD,WAAzD;AACA,OAAOC,UAAP,MAAuB,sBAAvB;IAGqBC,Y,WA8GlBD,UAAU,E,UAgCVA,UAAU,E,YA9IE,MAAMC,YAAN,CAAmB;AACC,SAAlBC,kBAAkB,CAAC;AAAEC,IAAAA,KAAF;AAASC,IAAAA,gBAAgB,GAAG;AAA5B,GAAD,EAAsE;AACrG,WAAO;AAAED,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAP;AACD;;AAQDC,EAAAA,WAAW,CAACC,OAAD,EAAuB;AAAA;;AAAA;;AAAA;;AAAA,sCAHC,IAAIC,GAAJ,EAGD;;AAAA;;AAAA,wCAoEb,OAAO;AAAEC,MAAAA;AAAF,KAAP,KAAiD;AACpE,UAAI,CAAC,eAAcA,IAAd,CAAL,EAA0B;AACxB;AACD;;AAED,YAAM;AAAEC,QAAAA,OAAF;AAAWC,QAAAA,MAAX;AAAmBC,QAAAA,MAAnB;AAA2BC,QAAAA;AAA3B,UAAoCJ,IAA1C;;AAEA,UAAII,IAAI,KAAKhB,WAAT,IAAwB,CAAC,eAAce,MAAd,CAA7B,EAAoD;AAClD;AACD;;AAED,YAAM;AAAEE,QAAAA,cAAF;AAAkB,WAAGC;AAArB,UAAoCH,MAA1C;AACA,YAAMI,QAA4B,GAAGzB,iBAAiB,CAAC,EAAE,GAAGwB,UAAL;AAAiBE,QAAAA,SAAS,EAAEP,OAAO,CAACN;AAApC,OAAD,CAAtD;;AAEA,UAAIU,cAAJ,EAAoB;AAClBE,QAAAA,QAAQ,CAACF,cAAT,GAA0BrB,sBAAsB,CAACqB,cAAD,CAAhD;AACD;;AAED,UAAIH,MAAM,KAAKZ,OAAf,EAAwB;AACtB,cAAMmB,OAAO,GAAG,KAAKC,QAAL,CAAcC,GAAd,CAAkBV,OAAO,CAACN,KAA1B,CAAhB;;AAEA,YAAI,CAACc,OAAL,EAAc;AACZ;AACD;;AAEDA,QAAAA,OAAO,CAACG,OAAR,CAAgBL,QAAhB;AACD,OARD,MAQO,IAAIL,MAAM,KAAKX,SAAX,IAAwBU,OAAO,CAACL,gBAApC,EAAsD;AAC3D,aAAKiB,aAAL,CAAmBC,IAAnB,CAAwBb,OAAO,CAACN,KAAhC,EAAuCY,QAAvC;AACD;AACF,KAjGiC;;AAChC,UAAMQ,MAAmB,GAAG,EAA5B;;AAEA,QAAI,CAAC,eAAcjB,OAAd,CAAL,EAA6B;AAC3BiB,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,4DAAd,CAAZ;AACD;;AAED,QAAI,CAACnB,OAAO,CAACoB,KAAb,EAAoB;AAClBH,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,6CAAd,CAAZ;AACD;;AAED,QAAI,CAACnB,OAAO,CAACqB,MAAb,EAAqB;AACnBJ,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,8CAAd,CAAZ;AACD;;AAED,QAAIF,MAAM,CAACK,MAAX,EAAmB;AACjB,YAAML,MAAN;AACD;;AAED,SAAKM,MAAL,GAAcvB,OAAO,CAACoB,KAAtB;AACA,SAAKI,aAAL,GAAqBxB,OAAO,CAACyB,YAAR,GAAuBzB,OAAO,CAACyB,YAAR,EAAvB,GAAgD,IAArE;AACA,SAAKV,aAAL,GAAqB,IAAI5B,YAAJ,EAArB;AACA,SAAKuC,OAAL,GAAe1B,OAAO,CAACqB,MAAvB;;AACA,SAAKM,iBAAL;AACD;;AAEQ,MAALP,KAAK,GAAmB;AAC1B,WAAO,KAAKG,MAAZ;AACD;;AAEkB,QAANK,MAAM,CAACC,OAAD,EAAkB7B,OAAuB,GAAG,EAA5C,EAAgDG,OAA4B,GAAG,EAA/E,EAAmF;AACpG,WAAO,KAAK2B,QAAL,CAAcD,OAAd,EAAuB7B,OAAvB,EAAgC,KAAK+B,kBAAL,CAAwBnD,QAAxB,EAAkCiD,OAAlC,EAA2C1B,OAA3C,CAAhC,CAAP;AACD;;AAEiB,QAAL6B,KAAK,CAACH,OAAD,EAAkB7B,OAAuB,GAAG,EAA5C,EAAgDG,OAA4B,GAAG,EAA/E,EAAmF;AACnG,WAAO,KAAK2B,QAAL,CAAcD,OAAd,EAAuB7B,OAAvB,EAAgC,KAAK+B,kBAAL,CAAwBlD,KAAxB,EAA+BgD,OAA/B,EAAwC1B,OAAxC,CAAhC,CAAP;AACD;;AAEmB,QAAP0B,OAAO,CAACA,OAAD,EAAkB7B,OAAuB,GAAG,EAA5C,EAAgDG,OAA4B,GAAG,EAA/E,EAAmF;AACrG,WAAO,KAAK2B,QAAL,CAAcD,OAAd,EAAuB7B,OAAvB,EAAgC,KAAK+B,kBAAL,CAAwBlD,KAAxB,EAA+BgD,OAA/B,EAAwC1B,OAAxC,CAAhC,CAAP;AACD;;AAEqB,QAAT8B,SAAS,CAACJ,OAAD,EAAkB7B,OAAuB,GAAG,EAA5C,EAAgD;AACpE,WAAO,KAAKkC,UAAL,CAAgBL,OAAhB,EAAyB7B,OAAzB,EAAkC,KAAK+B,kBAAL,CAAwBjD,YAAxB,EAAsC+C,OAAtC,CAAlC,CAAP;AACD;;AAEOF,EAAAA,iBAAiB,GAAS;AAChC,SAAKD,OAAL,CAAaS,gBAAb,CAA8B5C,OAA9B,EAAuC,KAAK6C,UAA5C;AACD;;AAEOL,EAAAA,kBAAkB,CACxBM,SADwB,EAExBR,OAFwB,EAGxB1B,OAA4B,GAAG,EAHP,EAIR;AAChB,WAAO;AACLN,MAAAA,KAAK,EAAER,IAAI,EADN;AAELoC,MAAAA,YAAY,EAAE,KAAKD,aAFd;AAGLc,MAAAA,YAAY,EAAE,IAAIrC,GAAJ,EAHT;AAILoC,MAAAA,SAJK;AAKLE,MAAAA,aAAa,EAAE,EALV;AAMLC,MAAAA,aAAa,EAAE,KANV;AAOLX,MAAAA,OAPK;AAQLY,MAAAA,aAAa,EAAExD,WAAW,CAAC4C,OAAD,CARrB;AASL,SAAG1B;AATE,KAAP;AAWD;;AAkCqB,QAAR2B,QAAQ,CAACD,OAAD,EAAkB7B,OAAlB,EAA2CG,OAA3C,EAAoE;AACxF,QAAI;AACF,UAAI,CAACA,OAAO,CAACL,gBAAb,EAA+B;AAC7B,eAAO,IAAI4C,OAAJ,CAAa5B,OAAD,IAA8B;AAC/C,eAAKY,OAAL,CAAaiB,WAAb,CAAyB;AACvBxC,YAAAA,OAAO,EAAER,YAAY,CAACC,kBAAb,CAAgCO,OAAhC,CADc;AAEvBC,YAAAA,MAAM,EAAEZ,OAFe;AAGvBQ,YAAAA,OAHuB;AAIvB6B,YAAAA,OAJuB;AAKvBvB,YAAAA,IAAI,EAAEhB;AALiB,WAAzB;;AAQA,eAAKsB,QAAL,CAAcgC,GAAd,CAAkBzC,OAAO,CAACN,KAA1B,EAAiC;AAAEiB,YAAAA;AAAF,WAAjC;AACD,SAVM,CAAP;AAWD;;AAED,WAAKY,OAAL,CAAaiB,WAAb,CAAyB;AACvBxC,QAAAA,OAAO,EAAER,YAAY,CAACC,kBAAb,CAAgCO,OAAhC,CADc;AAEvBC,QAAAA,MAAM,EAAEZ,OAFe;AAGvBQ,QAAAA,OAHuB;AAIvB6B,QAAAA,OAJuB;AAKvBvB,QAAAA,IAAI,EAAEhB;AALiB,OAAzB;;AAQA,YAAMuD,kBAAkB,GAAG,IAAI9D,kBAAJ,CAA2C,KAAKgC,aAAhD,EAA+DZ,OAAO,CAACN,KAAvE,CAA3B;AACA,aAAOgD,kBAAkB,CAACC,WAAnB,EAAP;AACD,KAzBD,CAyBE,OAAOC,KAAP,EAAc;AACd,aAAO;AAAE9B,QAAAA,MAAM,EAAE,WAAU8B,KAAV;AAAV,OAAP;AACD;AACF;;AAGuB,QAAVb,UAAU,CAACL,OAAD,EAAkB7B,OAAlB,EAA2CG,OAA3C,EAAoE;AAC1F,QAAI;AACF,WAAKuB,OAAL,CAAaiB,WAAb,CAAyB;AACvBxC,QAAAA,OAAO,EAAER,YAAY,CAACC,kBAAb,CAAgCO,OAAhC,CADc;AAEvBC,QAAAA,MAAM,EAAEX,SAFe;AAGvBO,QAAAA,OAHuB;AAIvB6B,QAAAA,OAJuB;AAKvBvB,QAAAA,IAAI,EAAEhB;AALiB,OAAzB;;AAQA,YAAMuD,kBAAkB,GAAG,IAAI9D,kBAAJ,CAA2C,KAAKgC,aAAhD,EAA+DZ,OAAO,CAACN,KAAvE,CAA3B;AACA,aAAOgD,kBAAkB,CAACC,WAAnB,EAAP;AACD,KAXD,CAWE,OAAOC,KAAP,EAAc;AACd,aAAO;AAAE9B,QAAAA,MAAM,EAAE,WAAU8B,KAAV;AAAV,OAAP;AACD;AACF;;AA9J+B,C;SAAbpD,Y","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ boxID, hasDeferOrStream = false }: RequestContext): MessageContext {\n return { boxID, hasDeferOrStream };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n boxID: uuid(),\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.boxID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.boxID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.boxID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.boxID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.boxID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/main/index.ts"],"names":["MUTATION","QUERY","SUBSCRIPTION","EventAsyncIterator","deserializeErrors","hashRequest","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","WorkerClient","_getMessageContext","hasDeferOrStream","requestID","constructor","options","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","pending","_pending","get","resolve","_eventEmitter","emit","errors","push","TypeError","cache","worker","length","_cache","_debugManager","debugManager","_worker","_addEventListener","mutate","request","_request","_getRequestContext","query","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","set","eventAsyncIterator","getIterator","error"],"mappings":"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","sourcesContent":["import WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n ValidOperations,\n} from \"@graphql-box/core\";\nimport { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from \"@graphql-box/helpers\";\nimport EventEmitter from \"eventemitter3\";\nimport { castArray, isPlainObject } from \"lodash\";\nimport { v1 as uuid } from \"uuid\";\nimport { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport logRequest from \"../debug/log-request\";\nimport { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from \"../defs\";\n\nexport default class WorkerClient {\n private static _getMessageContext({ hasDeferOrStream = false, requestID }: RequestContext): MessageContext {\n return { hasDeferOrStream, requestID };\n }\n\n private _cache: WorkerCachemap;\n private _debugManager: DebugManagerDef | null;\n private _eventEmitter: EventEmitter;\n private _pending: PendingTracker = new Map();\n private _worker: Worker;\n\n constructor(options: UserOptions) {\n const errors: TypeError[] = [];\n\n if (!isPlainObject(options)) {\n errors.push(new TypeError(\"@graphql-box/client expected options to ba a plain object.\"));\n }\n\n if (!options.cache) {\n errors.push(new TypeError(\"@graphql-box/client expected options.cache.\"));\n }\n\n if (!options.worker) {\n errors.push(new TypeError(\"@graphql-box/client expected options.worker.\"));\n }\n\n if (errors.length) {\n throw errors;\n }\n\n this._cache = options.cache;\n this._debugManager = options.debugManager ? options.debugManager() : null;\n this._eventEmitter = new EventEmitter();\n this._worker = options.worker;\n this._addEventListener();\n }\n\n get cache(): WorkerCachemap {\n return this._cache;\n }\n\n public async mutate(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(MUTATION, request, context));\n }\n\n public async query(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async request(request: string, options: RequestOptions = {}, context: MaybeRequestContext = {}) {\n return this._request(request, options, this._getRequestContext(QUERY, request, context));\n }\n\n public async subscribe(request: string, options: RequestOptions = {}) {\n return this._subscribe(request, options, this._getRequestContext(SUBSCRIPTION, request));\n }\n\n private _addEventListener(): void {\n this._worker.addEventListener(MESSAGE, this._onMessage);\n }\n\n private _getRequestContext(\n operation: ValidOperations,\n request: string,\n context: MaybeRequestContext = {},\n ): RequestContext {\n return {\n debugManager: this._debugManager,\n fieldTypeMap: new Map(),\n operation,\n operationName: \"\",\n queryFiltered: false,\n request,\n requestID: uuid(),\n whitelistHash: hashRequest(request),\n ...context,\n };\n }\n\n private _onMessage = async ({ data }: MessageEvent): Promise<void> => {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { context, method, result, type } = data as MessageResponsePayload;\n\n if (type !== GRAPHQL_BOX || !isPlainObject(result)) {\n return;\n }\n\n const { _cacheMetadata, ...otherProps } = result;\n const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.requestID });\n\n if (_cacheMetadata) {\n response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);\n }\n\n if (method === REQUEST) {\n const pending = this._pending.get(context.requestID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(response);\n } else if (method === SUBSCRIBE || context.hasDeferOrStream) {\n this._eventEmitter.emit(context.requestID, response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n if (!context.hasDeferOrStream) {\n return new Promise((resolve: PendingResolver) => {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n this._pending.set(context.requestID, { resolve });\n });\n }\n\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: REQUEST,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n\n @logRequest()\n private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {\n try {\n this._worker.postMessage({\n context: WorkerClient._getMessageContext(context),\n method: SUBSCRIBE,\n options,\n request,\n type: GRAPHQL_BOX,\n });\n\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n return eventAsyncIterator.getIterator();\n } catch (error) {\n return { errors: castArray(error) };\n }\n }\n}\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/consts/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/consts/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,eAAO,MAAM,OAAO,YAAY,CAAC;AAEjC,eAAO,MAAM,WAAW,eAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-request/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-request/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,cAErB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CA2CR"}
|
|
@@ -36,8 +36,8 @@ export interface MessageResponsePayload {
|
|
|
36
36
|
type: "graphqlBox" | "cachemap";
|
|
37
37
|
}
|
|
38
38
|
export interface MessageContext {
|
|
39
|
-
boxID: string;
|
|
40
39
|
hasDeferOrStream: boolean;
|
|
40
|
+
requestID: string;
|
|
41
41
|
}
|
|
42
42
|
export interface RegisterWorkerOptions {
|
|
43
43
|
client: Client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/defs/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD,oBAAY,eAAe,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,oBAAY,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/defs/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD,oBAAY,eAAe,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,oBAAY,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
package/lib/types/index.d.ts
CHANGED
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
package/src/consts/index.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { RequestContext } from "@graphql-box/core";
|
|
2
|
-
import { REQUEST_EXECUTED, REQUEST_RESOLVED } from "../../consts";
|
|
1
|
+
import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from "@graphql-box/core";
|
|
3
2
|
|
|
4
3
|
export default function logRequest() {
|
|
5
4
|
return (
|
|
@@ -13,7 +12,7 @@ export default function logRequest() {
|
|
|
13
12
|
descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {
|
|
14
13
|
try {
|
|
15
14
|
return new Promise(async resolve => {
|
|
16
|
-
const { debugManager, ...otherContext } = args[2] as RequestContext;
|
|
15
|
+
const { debugManager, requestID, ...otherContext } = args[2] as RequestContext;
|
|
17
16
|
|
|
18
17
|
if (!debugManager) {
|
|
19
18
|
resolve(await method.apply(this, args));
|
|
@@ -26,6 +25,7 @@ export default function logRequest() {
|
|
|
26
25
|
context: otherContext,
|
|
27
26
|
options: args[1],
|
|
28
27
|
request: args[0],
|
|
28
|
+
requestID,
|
|
29
29
|
stats: { startTime },
|
|
30
30
|
});
|
|
31
31
|
|
|
@@ -38,6 +38,7 @@ export default function logRequest() {
|
|
|
38
38
|
context: otherContext,
|
|
39
39
|
options: args[1],
|
|
40
40
|
request: args[0],
|
|
41
|
+
requestID,
|
|
41
42
|
result,
|
|
42
43
|
stats: { duration, endTime, startTime },
|
|
43
44
|
});
|
package/src/defs/index.ts
CHANGED
package/src/index.ts
CHANGED
package/src/main/index.ts
CHANGED
|
@@ -19,8 +19,8 @@ import logRequest from "../debug/log-request";
|
|
|
19
19
|
import { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from "../defs";
|
|
20
20
|
|
|
21
21
|
export default class WorkerClient {
|
|
22
|
-
private static _getMessageContext({
|
|
23
|
-
return {
|
|
22
|
+
private static _getMessageContext({ hasDeferOrStream = false, requestID }: RequestContext): MessageContext {
|
|
23
|
+
return { hasDeferOrStream, requestID };
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
private _cache: WorkerCachemap;
|
|
@@ -85,13 +85,13 @@ export default class WorkerClient {
|
|
|
85
85
|
context: MaybeRequestContext = {},
|
|
86
86
|
): RequestContext {
|
|
87
87
|
return {
|
|
88
|
-
boxID: uuid(),
|
|
89
88
|
debugManager: this._debugManager,
|
|
90
89
|
fieldTypeMap: new Map(),
|
|
91
90
|
operation,
|
|
92
91
|
operationName: "",
|
|
93
92
|
queryFiltered: false,
|
|
94
93
|
request,
|
|
94
|
+
requestID: uuid(),
|
|
95
95
|
whitelistHash: hashRequest(request),
|
|
96
96
|
...context,
|
|
97
97
|
};
|
|
@@ -109,14 +109,14 @@ export default class WorkerClient {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
const { _cacheMetadata, ...otherProps } = result;
|
|
112
|
-
const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.
|
|
112
|
+
const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.requestID });
|
|
113
113
|
|
|
114
114
|
if (_cacheMetadata) {
|
|
115
115
|
response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
if (method === REQUEST) {
|
|
119
|
-
const pending = this._pending.get(context.
|
|
119
|
+
const pending = this._pending.get(context.requestID);
|
|
120
120
|
|
|
121
121
|
if (!pending) {
|
|
122
122
|
return;
|
|
@@ -124,7 +124,7 @@ export default class WorkerClient {
|
|
|
124
124
|
|
|
125
125
|
pending.resolve(response);
|
|
126
126
|
} else if (method === SUBSCRIBE || context.hasDeferOrStream) {
|
|
127
|
-
this._eventEmitter.emit(context.
|
|
127
|
+
this._eventEmitter.emit(context.requestID, response);
|
|
128
128
|
}
|
|
129
129
|
};
|
|
130
130
|
|
|
@@ -141,7 +141,7 @@ export default class WorkerClient {
|
|
|
141
141
|
type: GRAPHQL_BOX,
|
|
142
142
|
});
|
|
143
143
|
|
|
144
|
-
this._pending.set(context.
|
|
144
|
+
this._pending.set(context.requestID, { resolve });
|
|
145
145
|
});
|
|
146
146
|
}
|
|
147
147
|
|
|
@@ -153,7 +153,7 @@ export default class WorkerClient {
|
|
|
153
153
|
type: GRAPHQL_BOX,
|
|
154
154
|
});
|
|
155
155
|
|
|
156
|
-
const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.
|
|
156
|
+
const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);
|
|
157
157
|
return eventAsyncIterator.getIterator();
|
|
158
158
|
} catch (error) {
|
|
159
159
|
return { errors: castArray(error) };
|
|
@@ -171,7 +171,7 @@ export default class WorkerClient {
|
|
|
171
171
|
type: GRAPHQL_BOX,
|
|
172
172
|
});
|
|
173
173
|
|
|
174
|
-
const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.
|
|
174
|
+
const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);
|
|
175
175
|
return eventAsyncIterator.getIterator();
|
|
176
176
|
} catch (error) {
|
|
177
177
|
return { errors: castArray(error) };
|