@graphql-box/worker-client 3.6.3 → 3.8.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 +29 -22
- 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 +10 -3
- package/lib/main/debug/log-request/index.js.map +1 -1
- package/lib/main/debug/log-subscription/index.js +48 -0
- package/lib/main/debug/log-subscription/index.js.map +1 -0
- package/lib/main/index.js +0 -9
- package/lib/main/index.js.map +1 -1
- package/lib/main/main/index.js +38 -14
- 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 +9 -3
- package/lib/module/debug/log-request/index.js.map +1 -1
- package/lib/module/debug/log-subscription/index.js +39 -0
- package/lib/module/debug/log-subscription/index.js.map +1 -0
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/main/index.js +38 -15
- 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/debug/log-subscription/index.d.ts +2 -0
- package/lib/types/debug/log-subscription/index.d.ts.map +1 -0
- 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/lib/types/main/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 +8 -4
- package/src/debug/log-subscription/index.ts +39 -0
- package/src/defs/index.ts +1 -1
- package/src/index.ts +0 -1
- package/src/main/index.ts +29 -12
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 a from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/applyDecoratedDescriptor";import o from"lodash/isPlainObject";import u from"lodash/castArray";import c from"@babel/runtime/regenerator";import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.map.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.promise.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import{REQUEST_RESOLVED as i,REQUEST_EXECUTED as p,SUBSCRIPTION_EXECUTED as h,MUTATION as l,QUERY as f,SUBSCRIPTION as b,SUBSCRIPTION_RESOLVED as m}from"@graphql-box/core";import{hashRequest as d,EventAsyncIterator as g,deserializeErrors as v,rehydrateCacheMetadata as y,dehydrateCacheMetadata as w,serializeErrors as x}from"@graphql-box/helpers";import _ from"eventemitter3";import{v1 as j}from"uuid";import{isAsyncIterable as k,forAwaitEach as q}from"iterall";import{handleMessage as O}from"@cachemap/core-worker";var M,D,P;function E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function I(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?E(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var C=(M=function(r,n,a){var s,o=a.value;o&&(a.value=(s=t(c.mark((function r(){var n,a,s,u=this,h=arguments;return c.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=h.length,a=new Array(n),s=0;s<n;s++)a[s]=h[s];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(c.mark((function t(r){var n,s,h,l,f,b,m;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=a[2],s=n.debugManager,h=e(n,["debugManager"]),s){t.next=8;break}return t.t0=r,t.next=5,o.apply(u,a);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return l=s.now(),s.log(p,{context:h,options:a[1],request:a[0],stats:{startTime:l}}),t.next=12,o.apply(u,a);case 12:if(f=t.sent,b=s.now(),m=b-l,r(f),!k(f)){t.next=18;break}return t.abrupt("return");case 18:s.log(i,{context:h,options:a[1],request:a[0],result:f,stats:{duration:m,endTime:b,startTime:l}});case 19: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)}))},D=function(r,n,a){var s,o=a.value;o&&(a.value=(s=t(c.mark((function r(){var n,a,s,u=this,i=arguments;return c.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=i.length,a=new Array(n),s=0;s<n;s++)a[s]=i[s];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(c.mark((function t(r){var n,s,i,p,l;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=a[2],s=n.debugManager,i=e(n,["debugManager"]),s){t.next=8;break}return t.t0=r,t.next=5,o.apply(u,a);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=s.now(),s.log(h,{context:i,options:a[1],request:a[0],stats:{startTime:p}}),t.next=12,o.apply(u,a);case 12:l=t.sent,r(l);case 14: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)}))},s((P=function(){function s(n){var u,p=this;r(this,s),a(this,"_cache",void 0),a(this,"_debugManager",void 0),a(this,"_eventEmitter",void 0),a(this,"_pending",new Map),a(this,"_worker",void 0),a(this,"_onMessage",(u=t(c.mark((function t(r){var n,a,s,u,h,l,f,b,d,g,w,x,_;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,o(n)){t.next=3;break}return t.abrupt("return");case 3:if(s=(a=n).context,u=a.method,h=a.result,"graphqlBox"===a.type&&o(h)){t.next=6;break}return t.abrupt("return");case 6:if(l=h._cacheMetadata,f=e(h,["_cacheMetadata"]),b=v(I(I({},f),{},{requestID:s.requestID})),l&&(b._cacheMetadata=y(l)),"subscribe"!==u){t.next=14;break}null===(d=p._debugManager)||void 0===d||d.log(m,{context:s,result:b,stats:{endTime:null===(g=p._debugManager)||void 0===g?void 0:g.now()}}),p._eventEmitter.emit(s.requestID,b),t.next=23;break;case 14:if(!s.hasDeferOrStream){t.next=19;break}null===(w=p._debugManager)||void 0===w||w.log(i,{context:s,result:b,stats:{endTime:null===(x=p._debugManager)||void 0===x?void 0:x.now()}}),p._eventEmitter.emit(s.requestID,b),t.next=23;break;case 19:if(_=p._pending.get(s.requestID)){t.next=22;break}return t.abrupt("return");case 22:_.resolve(b);case 23:case"end":return t.stop()}}),t)}))),function(e){return u.apply(this,arguments)}));var h=[];if(o(n)||h.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),n.cache||h.push(new TypeError("@graphql-box/client expected options.cache.")),n.worker||h.push(new TypeError("@graphql-box/client expected options.worker.")),h.length)throw h;this._cache=n.cache,this._debugManager=n.debugManager?n.debugManager():null,this._eventEmitter=new _,this._worker=n.worker,this._addEventListener()}var p,h,w,x,k,q;return n(s,[{key:"cache",get:function(){return this._cache}},{key:"mutate",value:(q=t(c.mark((function e(t){var r,n,a=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=a.length>1&&void 0!==a[1]?a[1]:{},n=a.length>2&&void 0!==a[2]?a[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 q.apply(this,arguments)})},{key:"query",value:(k=t(c.mark((function e(t){var r,n,a=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=a.length>1&&void 0!==a[1]?a[1]:{},n=a.length>2&&void 0!==a[2]?a[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(f,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return k.apply(this,arguments)})},{key:"request",value:(x=t(c.mark((function e(t){var r,n,a=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=a.length>1&&void 0!==a[1]?a[1]:{},n=a.length>2&&void 0!==a[2]?a[2]:{},e.abrupt("return",this._request(t,r,this._getRequestContext(f,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return x.apply(this,arguments)})},{key:"subscribe",value:(w=t(c.mark((function e(t){var r,n=arguments;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.abrupt("return",this._subscribe(t,r,this._getRequestContext(b,t)));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return w.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 I({debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t,requestID:j(),whitelistHash:d(t)},r)}},{key:"_request",value:(h=t(c.mark((function e(t,r,n){var a,o=this;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n.hasDeferOrStream){e.next=3;break}return e.abrupt("return",new Promise((function(e){o._worker.postMessage({context:s._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o._pending.set(n.requestID,{resolve:e})})));case 3:return this._worker.postMessage({context:s._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),a=new g(this._eventEmitter,n.requestID),e.abrupt("return",a.getIterator());case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",{errors:u(e.t0)});case 11:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(e,t,r){return h.apply(this,arguments)})},{key:"_subscribe",value:(p=t(c.mark((function e(t,r,n){var a;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:s._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),a=new g(this._eventEmitter,n.requestID),e.abrupt("return",a.getIterator());case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",{errors:u(e.t0)});case 9:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,t,r){return p.apply(this,arguments)})}],[{key:"_getMessageContext",value:function(e){var t=e.hasDeferOrStream;return{hasDeferOrStream:void 0!==t&&t,requestID:e.requestID}}}]),s}()).prototype,"_request",[M],Object.getOwnPropertyDescriptor(P.prototype,"_request"),P.prototype),s(P.prototype,"_subscribe",[D],Object.getOwnPropertyDescriptor(P.prototype,"_subscribe"),P.prototype),P);function T(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?T(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):T(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var S=self,R=S.addEventListener,L=S.postMessage;function A(){return(A=t(c.mark((function t(r,n,a,s,o){var u,i,p,h,l;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,o.request(r,a,s);case 2:if(u=t.sent,k(u)){t.next=9;break}return p=(i=u)._cacheMetadata,h=e(i,["_cacheMetadata"]),l=B({},h),p&&(l._cacheMetadata=w(p)),L({context:s,method:n,result:x(l),type:"graphqlBox"}),t.abrupt("return");case 9:q(u,(function(t){var r=t._cacheMetadata,a=B({},e(t,["_cacheMetadata"]));r&&(a._cacheMetadata=w(r)),L({context:s,method:n,result:x(a),type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function F(){return(F=t(c.mark((function t(r,n,a,s,o){var u;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,o.subscribe(r,a,s);case 2:if(u=t.sent,k(u)){t.next=6;break}return L({context:s,method:n,result:x(u),type:"graphqlBox"}),t.abrupt("return");case 6:q(u,(function(t){var r=t._cacheMetadata,a=B({},e(t,["_cacheMetadata"]));r&&(a._cacheMetadata=w(r)),L({context:s,method:n,result:x(a),type:"graphqlBox"})}));case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function G(e,t){var r=e,n=r.context,a=r.method,s=r.options,o=r.request;"request"===a?function(e,t,r,n,a){A.apply(this,arguments)}(o,a,s,n,t):"subscribe"===a&&function(e,t,r,n,a){F.apply(this,arguments)}(o,a,s,n,t)}function H(e){return N.apply(this,arguments)}function N(){return(N=t(c.mark((function e(t){var r,n;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(o(t)){var n=t.type;"graphqlBox"===n?G(t,r):"cachemap"===n&&r.cache&&O(t,r.cache)}},r=t.client,R("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default C;export{H 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/main/index.ts","../worker-client/src/debug/log-request/index.ts","../worker-client/src/debug/log-subscription/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 WorkerCachemap from \"@cachemap/core-worker\";\nimport {\n DebugManagerDef,\n MUTATION,\n MaybeRequestContext,\n MaybeRequestResult,\n QUERY,\n REQUEST_RESOLVED,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n SUBSCRIPTION_RESOLVED,\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 logSubscription from \"../debug/log-subscription\";\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 === SUBSCRIBE) {\n this._debugManager?.log(SUBSCRIPTION_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n this._eventEmitter.emit(context.requestID, response);\n } else if (context.hasDeferOrStream) {\n this._debugManager?.log(REQUEST_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n this._eventEmitter.emit(context.requestID, response);\n } else {\n const pending = this._pending.get(context.requestID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(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 @logSubscription()\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 { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\nimport { isAsyncIterable } from \"iterall\";\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.log(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 if (isAsyncIterable(result)) {\n return;\n }\n\n debugManager.log(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 { RequestContext, SUBSCRIPTION_EXECUTED } from \"@graphql-box/core\";\n\nexport default function logSubscription() {\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.log(SUBSCRIPTION_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 resolve(result);\n });\n } catch (error) {\n return Promise.reject(error);\n }\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":["WorkerClient","_target","_propertyName","descriptor","method","value","args","Promise","resolve","debugManager","otherContext","apply","_this","startTime","now","log","REQUEST_EXECUTED","context","options","request","stats","result","endTime","duration","isAsyncIterable","REQUEST_RESOLVED","reject","SUBSCRIPTION_EXECUTED","Map","data","_isPlainObject","type","_cacheMetadata","otherProps","response","deserializeErrors","requestID","rehydrateCacheMetadata","_debugManager","SUBSCRIPTION_RESOLVED","_this$_debugManager2","_eventEmitter","emit","hasDeferOrStream","_this$_debugManager4","pending","_pending","get","errors","push","TypeError","cache","worker","length","_cache","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","dehydrateCacheMetadata","serializeErrors","forAwaitEach","subscribe","subscribeResult","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","handleCachemapMessage"],"mappings":"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"}
|
|
@@ -1,55 +1,62 @@
|
|
|
1
1
|
-----------------------------
|
|
2
2
|
Rollup File Analysis
|
|
3
3
|
-----------------------------
|
|
4
|
-
bundle size:
|
|
5
|
-
original size:
|
|
4
|
+
bundle size: 28.786 KB
|
|
5
|
+
original size: 13.585 KB
|
|
6
6
|
code reduction: 0 %
|
|
7
|
-
module count:
|
|
7
|
+
module count: 7
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
10
10
|
file: /src/main/index.ts
|
|
11
|
-
bundle space:
|
|
12
|
-
rendered size:
|
|
13
|
-
original size:
|
|
11
|
+
bundle space: 49.82 %
|
|
12
|
+
rendered size: 14.341 KB
|
|
13
|
+
original size: 6.044 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:
|
|
20
|
+
bundle space: 22.11 %
|
|
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: 15.4 %
|
|
30
|
+
rendered size: 4.432 KB
|
|
31
|
+
original size: 1.539 KB
|
|
32
|
+
code reduction: 0 %
|
|
33
|
+
dependents: 1
|
|
34
|
+
- /src/main/index.ts
|
|
35
|
+
|
|
36
|
+
██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
37
|
+
file: /src/debug/log-subscription/index.ts
|
|
38
|
+
bundle space: 12.19 %
|
|
39
|
+
rendered size: 3.51 KB
|
|
40
|
+
original size: 1.095 KB
|
|
32
41
|
code reduction: 0 %
|
|
33
42
|
dependents: 1
|
|
34
43
|
- /src/main/index.ts
|
|
35
44
|
|
|
36
45
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
37
46
|
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
|
|
47
|
+
bundle space: 0.48 %
|
|
48
|
+
rendered size: 137 Bytes
|
|
49
|
+
original size: 185 Bytes
|
|
50
|
+
code reduction: 25.95 %
|
|
51
|
+
dependents: 2
|
|
44
52
|
- /src/main/index.ts
|
|
45
53
|
- /src/register-worker/index.ts
|
|
46
|
-
- /src/index.ts
|
|
47
54
|
|
|
48
55
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
49
56
|
file: /src/defs/index.ts
|
|
50
57
|
bundle space: 0 %
|
|
51
58
|
rendered size: 0 Byte
|
|
52
|
-
original size: 1.
|
|
59
|
+
original size: 1.224 KB
|
|
53
60
|
code reduction: 100 %
|
|
54
61
|
dependents: 1
|
|
55
62
|
- /src/index.ts
|
|
@@ -58,7 +65,7 @@ dependents: 1
|
|
|
58
65
|
file: /src/index.ts
|
|
59
66
|
bundle space: 0 %
|
|
60
67
|
rendered size: 0 Byte
|
|
61
|
-
original size:
|
|
68
|
+
original size: 121 Bytes
|
|
62
69
|
code reduction: 100 %
|
|
63
70
|
dependents: 0
|
|
64
71
|
|
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,9 @@ 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
|
+
|
|
12
|
+
var _iterall = require("iterall");
|
|
11
13
|
|
|
12
14
|
function logRequest() {
|
|
13
15
|
return (_target, _propertyName, descriptor) => {
|
|
@@ -28,7 +30,7 @@ function logRequest() {
|
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
const startTime = debugManager.now();
|
|
31
|
-
debugManager.
|
|
33
|
+
debugManager.log(_core.REQUEST_EXECUTED, {
|
|
32
34
|
context: otherContext,
|
|
33
35
|
options: args[1],
|
|
34
36
|
request: args[0],
|
|
@@ -40,7 +42,12 @@ function logRequest() {
|
|
|
40
42
|
const endTime = debugManager.now();
|
|
41
43
|
const duration = endTime - startTime;
|
|
42
44
|
resolve(result);
|
|
43
|
-
|
|
45
|
+
|
|
46
|
+
if ((0, _iterall.isAsyncIterable)(result)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
debugManager.log(_core.REQUEST_RESOLVED, {
|
|
44
51
|
context: otherContext,
|
|
45
52
|
options: args[1],
|
|
46
53
|
request: args[0],
|
|
@@ -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","
|
|
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","log","REQUEST_EXECUTED","context","options","request","stats","result","endTime","duration","REQUEST_RESOLVED","error","reject"],"mappings":";;;;;;;;;AAAA;;AACA;;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;AAAgB,eAAGC;AAAnB,cAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMM,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AAEAJ,UAAAA,YAAY,CAACK,GAAb,CAAiBC,sBAAjB,EAAmC;AACjCC,YAAAA,OAAO,EAAEN,YADwB;AAEjCO,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAFoB;AAGjCY,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAHoB;AAIjCa,YAAAA,KAAK,EAAE;AAAEP,cAAAA;AAAF;AAJ0B,WAAnC;AAOA,gBAAMQ,MAAM,GAAG,MAAMjB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACA,gBAAMe,OAAO,GAAGZ,YAAY,CAACI,GAAb,EAAhB;AACA,gBAAMS,QAAQ,GAAGD,OAAO,GAAGT,SAA3B;AACAJ,UAAAA,OAAO,CAACY,MAAD,CAAP;;AAEA,cAAI,8BAAgBA,MAAhB,CAAJ,EAA6B;AAC3B;AACD;;AAEDX,UAAAA,YAAY,CAACK,GAAb,CAAiBS,sBAAjB,EAAmC;AACjCP,YAAAA,OAAO,EAAEN,YADwB;AAEjCO,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAFoB;AAGjCY,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAHoB;AAIjCc,YAAAA,MAJiC;AAKjCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBT,cAAAA;AAArB;AAL0B,WAAnC;AAOD,SAjCM,CAAP;AAkCD,OAnCD,CAmCE,OAAOY,KAAP,EAAc;AACd,eAAOjB,OAAO,CAACkB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KAvCD;AAwCD,GAhDD;AAiDD","sourcesContent":["import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\nimport { isAsyncIterable } from \"iterall\";\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.log(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 if (isAsyncIterable(result)) {\n return;\n }\n\n debugManager.log(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"],"file":"index.js"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = logSubscription;
|
|
7
|
+
|
|
8
|
+
require("core-js/modules/es.promise.js");
|
|
9
|
+
|
|
10
|
+
var _core = require("@graphql-box/core");
|
|
11
|
+
|
|
12
|
+
function logSubscription() {
|
|
13
|
+
return (_target, _propertyName, descriptor) => {
|
|
14
|
+
const method = descriptor.value;
|
|
15
|
+
if (!method) return;
|
|
16
|
+
|
|
17
|
+
descriptor.value = async function descriptorValue(...args) {
|
|
18
|
+
try {
|
|
19
|
+
return new Promise(async resolve => {
|
|
20
|
+
const {
|
|
21
|
+
debugManager,
|
|
22
|
+
...otherContext
|
|
23
|
+
} = args[2];
|
|
24
|
+
|
|
25
|
+
if (!debugManager) {
|
|
26
|
+
resolve(await method.apply(this, args));
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const startTime = debugManager.now();
|
|
31
|
+
debugManager.log(_core.SUBSCRIPTION_EXECUTED, {
|
|
32
|
+
context: otherContext,
|
|
33
|
+
options: args[1],
|
|
34
|
+
request: args[0],
|
|
35
|
+
stats: {
|
|
36
|
+
startTime
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
const result = await method.apply(this, args);
|
|
40
|
+
resolve(result);
|
|
41
|
+
});
|
|
42
|
+
} catch (error) {
|
|
43
|
+
return Promise.reject(error);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/debug/log-subscription/index.ts"],"names":["logSubscription","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","log","SUBSCRIPTION_EXECUTED","context","options","request","stats","result","error","reject"],"mappings":";;;;;;;;;AAAA;;AAEe,SAASA,eAAT,GAA2B;AACxC,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;AAAgB,eAAGC;AAAnB,cAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMM,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AAEAJ,UAAAA,YAAY,CAACK,GAAb,CAAiBC,2BAAjB,EAAwC;AACtCC,YAAAA,OAAO,EAAEN,YAD6B;AAEtCO,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAFyB;AAGtCY,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAHyB;AAItCa,YAAAA,KAAK,EAAE;AAAEP,cAAAA;AAAF;AAJ+B,WAAxC;AAOA,gBAAMQ,MAAM,GAAG,MAAMjB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACAE,UAAAA,OAAO,CAACY,MAAD,CAAP;AACD,SAnBM,CAAP;AAoBD,OArBD,CAqBE,OAAOC,KAAP,EAAc;AACd,eAAOd,OAAO,CAACe,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KAzBD;AA0BD,GAlCD;AAmCD","sourcesContent":["import { RequestContext, SUBSCRIPTION_EXECUTED } from \"@graphql-box/core\";\n\nexport default function logSubscription() {\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.log(SUBSCRIPTION_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 resolve(result);\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
|
@@ -29,16 +29,18 @@ var _consts = require("../consts");
|
|
|
29
29
|
|
|
30
30
|
var _logRequest = _interopRequireDefault(require("../debug/log-request"));
|
|
31
31
|
|
|
32
|
+
var _logSubscription = _interopRequireDefault(require("../debug/log-subscription"));
|
|
33
|
+
|
|
32
34
|
var _dec, _dec2, _class;
|
|
33
35
|
|
|
34
|
-
let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0,
|
|
36
|
+
let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logSubscription.default)(), (_class = class WorkerClient {
|
|
35
37
|
static _getMessageContext({
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
hasDeferOrStream = false,
|
|
39
|
+
requestID
|
|
38
40
|
}) {
|
|
39
41
|
return {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
hasDeferOrStream,
|
|
43
|
+
requestID
|
|
42
44
|
};
|
|
43
45
|
}
|
|
44
46
|
|
|
@@ -71,23 +73,45 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
71
73
|
...otherProps
|
|
72
74
|
} = result;
|
|
73
75
|
const response = (0, _helpers.deserializeErrors)({ ...otherProps,
|
|
74
|
-
requestID: context.
|
|
76
|
+
requestID: context.requestID
|
|
75
77
|
});
|
|
76
78
|
|
|
77
79
|
if (_cacheMetadata) {
|
|
78
80
|
response._cacheMetadata = (0, _helpers.rehydrateCacheMetadata)(_cacheMetadata);
|
|
79
81
|
}
|
|
80
82
|
|
|
81
|
-
if (method === _consts.
|
|
82
|
-
|
|
83
|
+
if (method === _consts.SUBSCRIBE) {
|
|
84
|
+
var _this$_debugManager, _this$_debugManager2;
|
|
85
|
+
|
|
86
|
+
(_this$_debugManager = this._debugManager) === null || _this$_debugManager === void 0 ? void 0 : _this$_debugManager.log(_core.SUBSCRIPTION_RESOLVED, {
|
|
87
|
+
context,
|
|
88
|
+
result: response,
|
|
89
|
+
stats: {
|
|
90
|
+
endTime: (_this$_debugManager2 = this._debugManager) === null || _this$_debugManager2 === void 0 ? void 0 : _this$_debugManager2.now()
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
this._eventEmitter.emit(context.requestID, response);
|
|
95
|
+
} else if (context.hasDeferOrStream) {
|
|
96
|
+
var _this$_debugManager3, _this$_debugManager4;
|
|
97
|
+
|
|
98
|
+
(_this$_debugManager3 = this._debugManager) === null || _this$_debugManager3 === void 0 ? void 0 : _this$_debugManager3.log(_core.REQUEST_RESOLVED, {
|
|
99
|
+
context,
|
|
100
|
+
result: response,
|
|
101
|
+
stats: {
|
|
102
|
+
endTime: (_this$_debugManager4 = this._debugManager) === null || _this$_debugManager4 === void 0 ? void 0 : _this$_debugManager4.now()
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
this._eventEmitter.emit(context.requestID, response);
|
|
107
|
+
} else {
|
|
108
|
+
const pending = this._pending.get(context.requestID);
|
|
83
109
|
|
|
84
110
|
if (!pending) {
|
|
85
111
|
return;
|
|
86
112
|
}
|
|
87
113
|
|
|
88
114
|
pending.resolve(response);
|
|
89
|
-
} else if (method === _consts.SUBSCRIBE || context.hasDeferOrStream) {
|
|
90
|
-
this._eventEmitter.emit(context.boxID, response);
|
|
91
115
|
}
|
|
92
116
|
});
|
|
93
117
|
const errors = [];
|
|
@@ -142,13 +166,13 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
142
166
|
|
|
143
167
|
_getRequestContext(operation, request, context = {}) {
|
|
144
168
|
return {
|
|
145
|
-
boxID: (0, _uuid.v1)(),
|
|
146
169
|
debugManager: this._debugManager,
|
|
147
170
|
fieldTypeMap: new Map(),
|
|
148
171
|
operation,
|
|
149
172
|
operationName: "",
|
|
150
173
|
queryFiltered: false,
|
|
151
174
|
request,
|
|
175
|
+
requestID: (0, _uuid.v1)(),
|
|
152
176
|
whitelistHash: (0, _helpers.hashRequest)(request),
|
|
153
177
|
...context
|
|
154
178
|
};
|
|
@@ -166,7 +190,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
166
190
|
type: _consts.GRAPHQL_BOX
|
|
167
191
|
});
|
|
168
192
|
|
|
169
|
-
this._pending.set(context.
|
|
193
|
+
this._pending.set(context.requestID, {
|
|
170
194
|
resolve
|
|
171
195
|
});
|
|
172
196
|
});
|
|
@@ -180,7 +204,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
180
204
|
type: _consts.GRAPHQL_BOX
|
|
181
205
|
});
|
|
182
206
|
|
|
183
|
-
const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.
|
|
207
|
+
const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.requestID);
|
|
184
208
|
return eventAsyncIterator.getIterator();
|
|
185
209
|
} catch (error) {
|
|
186
210
|
return {
|
|
@@ -199,7 +223,7 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logRequest.d
|
|
|
199
223
|
type: _consts.GRAPHQL_BOX
|
|
200
224
|
});
|
|
201
225
|
|
|
202
|
-
const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.
|
|
226
|
+
const eventAsyncIterator = new _helpers.EventAsyncIterator(this._eventEmitter, context.requestID);
|
|
203
227
|
return eventAsyncIterator.getIterator();
|
|
204
228
|
} catch (error) {
|
|
205
229
|
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","SUBSCRIBE","_debugManager","log","SUBSCRIPTION_RESOLVED","stats","endTime","now","_eventEmitter","emit","REQUEST_RESOLVED","pending","_pending","get","resolve","errors","push","TypeError","cache","worker","length","_cache","debugManager","EventEmitter","_worker","_addEventListener","mutate","request","_request","_getRequestContext","MUTATION","query","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","operationName","queryFiltered","whitelistHash","Promise","postMessage","REQUEST","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 REQUEST_RESOLVED,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n SUBSCRIPTION_RESOLVED,\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 logSubscription from \"../debug/log-subscription\";\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 === SUBSCRIBE) {\n this._debugManager?.log(SUBSCRIPTION_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n this._eventEmitter.emit(context.requestID, response);\n } else if (context.hasDeferOrStream) {\n this._debugManager?.log(REQUEST_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n this._eventEmitter.emit(context.requestID, response);\n } else {\n const pending = this._pending.get(context.requestID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(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 @logSubscription()\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,6 @@
|
|
|
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
|
+
import { isAsyncIterable } from "iterall";
|
|
3
4
|
export default function logRequest() {
|
|
4
5
|
return (_target, _propertyName, descriptor) => {
|
|
5
6
|
const method = descriptor.value;
|
|
@@ -19,7 +20,7 @@ export default function logRequest() {
|
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
const startTime = debugManager.now();
|
|
22
|
-
debugManager.
|
|
23
|
+
debugManager.log(REQUEST_EXECUTED, {
|
|
23
24
|
context: otherContext,
|
|
24
25
|
options: args[1],
|
|
25
26
|
request: args[0],
|
|
@@ -31,7 +32,12 @@ export default function logRequest() {
|
|
|
31
32
|
const endTime = debugManager.now();
|
|
32
33
|
const duration = endTime - startTime;
|
|
33
34
|
resolve(result);
|
|
34
|
-
|
|
35
|
+
|
|
36
|
+
if (isAsyncIterable(result)) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
debugManager.log(REQUEST_RESOLVED, {
|
|
35
41
|
context: otherContext,
|
|
36
42
|
options: args[1],
|
|
37
43
|
request: args[0],
|
|
@@ -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","
|
|
1
|
+
{"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["REQUEST_EXECUTED","REQUEST_RESOLVED","isAsyncIterable","logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","log","context","options","request","stats","result","endTime","duration","error","reject"],"mappings":";AAAA,SAASA,gBAAT,EAA2BC,gBAA3B,QAAmE,mBAAnE;AACA,SAASC,eAAT,QAAgC,SAAhC;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;AAAgB,eAAGC;AAAnB,cAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMM,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AAEAJ,UAAAA,YAAY,CAACK,GAAb,CAAiBlB,gBAAjB,EAAmC;AACjCmB,YAAAA,OAAO,EAAEL,YADwB;AAEjCM,YAAAA,OAAO,EAAEV,IAAI,CAAC,CAAD,CAFoB;AAGjCW,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAHoB;AAIjCY,YAAAA,KAAK,EAAE;AAAEN,cAAAA;AAAF;AAJ0B,WAAnC;AAOA,gBAAMO,MAAM,GAAG,MAAMhB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACA,gBAAMc,OAAO,GAAGX,YAAY,CAACI,GAAb,EAAhB;AACA,gBAAMQ,QAAQ,GAAGD,OAAO,GAAGR,SAA3B;AACAJ,UAAAA,OAAO,CAACW,MAAD,CAAP;;AAEA,cAAIrB,eAAe,CAACqB,MAAD,CAAnB,EAA6B;AAC3B;AACD;;AAEDV,UAAAA,YAAY,CAACK,GAAb,CAAiBjB,gBAAjB,EAAmC;AACjCkB,YAAAA,OAAO,EAAEL,YADwB;AAEjCM,YAAAA,OAAO,EAAEV,IAAI,CAAC,CAAD,CAFoB;AAGjCW,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAHoB;AAIjCa,YAAAA,MAJiC;AAKjCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBR,cAAAA;AAArB;AAL0B,WAAnC;AAOD,SAjCM,CAAP;AAkCD,OAnCD,CAmCE,OAAOU,KAAP,EAAc;AACd,eAAOf,OAAO,CAACgB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KAvCD;AAwCD,GAhDD;AAiDD","sourcesContent":["import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\nimport { isAsyncIterable } from \"iterall\";\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.log(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 if (isAsyncIterable(result)) {\n return;\n }\n\n debugManager.log(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"],"file":"index.js"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import "core-js/modules/es.promise.js";
|
|
2
|
+
import { SUBSCRIPTION_EXECUTED } from "@graphql-box/core";
|
|
3
|
+
export default function logSubscription() {
|
|
4
|
+
return (_target, _propertyName, descriptor) => {
|
|
5
|
+
const method = descriptor.value;
|
|
6
|
+
if (!method) return;
|
|
7
|
+
|
|
8
|
+
descriptor.value = async function descriptorValue(...args) {
|
|
9
|
+
try {
|
|
10
|
+
return new Promise(async resolve => {
|
|
11
|
+
const {
|
|
12
|
+
debugManager,
|
|
13
|
+
...otherContext
|
|
14
|
+
} = args[2];
|
|
15
|
+
|
|
16
|
+
if (!debugManager) {
|
|
17
|
+
resolve(await method.apply(this, args));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const startTime = debugManager.now();
|
|
22
|
+
debugManager.log(SUBSCRIPTION_EXECUTED, {
|
|
23
|
+
context: otherContext,
|
|
24
|
+
options: args[1],
|
|
25
|
+
request: args[0],
|
|
26
|
+
stats: {
|
|
27
|
+
startTime
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
const result = await method.apply(this, args);
|
|
31
|
+
resolve(result);
|
|
32
|
+
});
|
|
33
|
+
} catch (error) {
|
|
34
|
+
return Promise.reject(error);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/debug/log-subscription/index.ts"],"names":["SUBSCRIPTION_EXECUTED","logSubscription","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","log","context","options","request","stats","result","error","reject"],"mappings":";AAAA,SAAyBA,qBAAzB,QAAsD,mBAAtD;AAEA,eAAe,SAASC,eAAT,GAA2B;AACxC,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;AAAgB,eAAGC;AAAnB,cAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,cAAI,CAACG,YAAL,EAAmB;AACjBD,YAAAA,OAAO,CAAC,MAAML,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAP,CAAP;AACA;AACD;;AAED,gBAAMM,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AAEAJ,UAAAA,YAAY,CAACK,GAAb,CAAiBhB,qBAAjB,EAAwC;AACtCiB,YAAAA,OAAO,EAAEL,YAD6B;AAEtCM,YAAAA,OAAO,EAAEV,IAAI,CAAC,CAAD,CAFyB;AAGtCW,YAAAA,OAAO,EAAEX,IAAI,CAAC,CAAD,CAHyB;AAItCY,YAAAA,KAAK,EAAE;AAAEN,cAAAA;AAAF;AAJ+B,WAAxC;AAOA,gBAAMO,MAAM,GAAG,MAAMhB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACAE,UAAAA,OAAO,CAACW,MAAD,CAAP;AACD,SAnBM,CAAP;AAoBD,OArBD,CAqBE,OAAOC,KAAP,EAAc;AACd,eAAOb,OAAO,CAACc,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KAzBD;AA0BD,GAlCD;AAmCD","sourcesContent":["import { RequestContext, SUBSCRIPTION_EXECUTED } from \"@graphql-box/core\";\n\nexport default function logSubscription() {\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.log(SUBSCRIPTION_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 resolve(result);\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
|
@@ -6,20 +6,21 @@ import _castArray from "lodash/castArray";
|
|
|
6
6
|
var _dec, _dec2, _class;
|
|
7
7
|
|
|
8
8
|
import "core-js/modules/es.promise.js";
|
|
9
|
-
import { MUTATION, QUERY, SUBSCRIPTION } from "@graphql-box/core";
|
|
9
|
+
import { MUTATION, QUERY, REQUEST_RESOLVED, SUBSCRIPTION, SUBSCRIPTION_RESOLVED } from "@graphql-box/core";
|
|
10
10
|
import { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from "@graphql-box/helpers";
|
|
11
11
|
import EventEmitter from "eventemitter3";
|
|
12
12
|
import { v1 as uuid } from "uuid";
|
|
13
13
|
import { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from "../consts";
|
|
14
14
|
import logRequest from "../debug/log-request";
|
|
15
|
-
|
|
15
|
+
import logSubscription from "../debug/log-subscription";
|
|
16
|
+
let WorkerClient = (_dec = logRequest(), _dec2 = logSubscription(), (_class = class WorkerClient {
|
|
16
17
|
static _getMessageContext({
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
hasDeferOrStream = false,
|
|
19
|
+
requestID
|
|
19
20
|
}) {
|
|
20
21
|
return {
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
hasDeferOrStream,
|
|
23
|
+
requestID
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -57,23 +58,45 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
57
58
|
...otherProps
|
|
58
59
|
} = result;
|
|
59
60
|
const response = deserializeErrors({ ...otherProps,
|
|
60
|
-
requestID: context.
|
|
61
|
+
requestID: context.requestID
|
|
61
62
|
});
|
|
62
63
|
|
|
63
64
|
if (_cacheMetadata) {
|
|
64
65
|
response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
|
|
65
66
|
}
|
|
66
67
|
|
|
67
|
-
if (method ===
|
|
68
|
-
|
|
68
|
+
if (method === SUBSCRIBE) {
|
|
69
|
+
var _this$_debugManager, _this$_debugManager2;
|
|
70
|
+
|
|
71
|
+
(_this$_debugManager = this._debugManager) === null || _this$_debugManager === void 0 ? void 0 : _this$_debugManager.log(SUBSCRIPTION_RESOLVED, {
|
|
72
|
+
context,
|
|
73
|
+
result: response,
|
|
74
|
+
stats: {
|
|
75
|
+
endTime: (_this$_debugManager2 = this._debugManager) === null || _this$_debugManager2 === void 0 ? void 0 : _this$_debugManager2.now()
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
this._eventEmitter.emit(context.requestID, response);
|
|
80
|
+
} else if (context.hasDeferOrStream) {
|
|
81
|
+
var _this$_debugManager3, _this$_debugManager4;
|
|
82
|
+
|
|
83
|
+
(_this$_debugManager3 = this._debugManager) === null || _this$_debugManager3 === void 0 ? void 0 : _this$_debugManager3.log(REQUEST_RESOLVED, {
|
|
84
|
+
context,
|
|
85
|
+
result: response,
|
|
86
|
+
stats: {
|
|
87
|
+
endTime: (_this$_debugManager4 = this._debugManager) === null || _this$_debugManager4 === void 0 ? void 0 : _this$_debugManager4.now()
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
this._eventEmitter.emit(context.requestID, response);
|
|
92
|
+
} else {
|
|
93
|
+
const pending = this._pending.get(context.requestID);
|
|
69
94
|
|
|
70
95
|
if (!pending) {
|
|
71
96
|
return;
|
|
72
97
|
}
|
|
73
98
|
|
|
74
99
|
pending.resolve(response);
|
|
75
|
-
} else if (method === SUBSCRIBE || context.hasDeferOrStream) {
|
|
76
|
-
this._eventEmitter.emit(context.boxID, response);
|
|
77
100
|
}
|
|
78
101
|
});
|
|
79
102
|
|
|
@@ -129,13 +152,13 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
129
152
|
|
|
130
153
|
_getRequestContext(operation, request, context = {}) {
|
|
131
154
|
return {
|
|
132
|
-
boxID: uuid(),
|
|
133
155
|
debugManager: this._debugManager,
|
|
134
156
|
fieldTypeMap: new Map(),
|
|
135
157
|
operation,
|
|
136
158
|
operationName: "",
|
|
137
159
|
queryFiltered: false,
|
|
138
160
|
request,
|
|
161
|
+
requestID: uuid(),
|
|
139
162
|
whitelistHash: hashRequest(request),
|
|
140
163
|
...context
|
|
141
164
|
};
|
|
@@ -153,7 +176,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
153
176
|
type: GRAPHQL_BOX
|
|
154
177
|
});
|
|
155
178
|
|
|
156
|
-
this._pending.set(context.
|
|
179
|
+
this._pending.set(context.requestID, {
|
|
157
180
|
resolve
|
|
158
181
|
});
|
|
159
182
|
});
|
|
@@ -167,7 +190,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
167
190
|
type: GRAPHQL_BOX
|
|
168
191
|
});
|
|
169
192
|
|
|
170
|
-
const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.
|
|
193
|
+
const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.requestID);
|
|
171
194
|
return eventAsyncIterator.getIterator();
|
|
172
195
|
} catch (error) {
|
|
173
196
|
return {
|
|
@@ -186,7 +209,7 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logRequest(), (_class = class W
|
|
|
186
209
|
type: GRAPHQL_BOX
|
|
187
210
|
});
|
|
188
211
|
|
|
189
|
-
const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.
|
|
212
|
+
const eventAsyncIterator = new EventAsyncIterator(this._eventEmitter, context.requestID);
|
|
190
213
|
return eventAsyncIterator.getIterator();
|
|
191
214
|
} catch (error) {
|
|
192
215
|
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":"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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":["MUTATION","QUERY","REQUEST_RESOLVED","SUBSCRIPTION","SUBSCRIPTION_RESOLVED","EventAsyncIterator","deserializeErrors","hashRequest","rehydrateCacheMetadata","EventEmitter","v1","uuid","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","logRequest","logSubscription","WorkerClient","_getMessageContext","hasDeferOrStream","requestID","constructor","options","Map","data","context","method","result","type","_cacheMetadata","otherProps","response","_debugManager","log","stats","endTime","now","_eventEmitter","emit","pending","_pending","get","resolve","errors","push","TypeError","cache","worker","length","_cache","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 REQUEST_RESOLVED,\n RequestContext,\n RequestOptions,\n SUBSCRIPTION,\n SUBSCRIPTION_RESOLVED,\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 logSubscription from \"../debug/log-subscription\";\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 === SUBSCRIBE) {\n this._debugManager?.log(SUBSCRIPTION_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n this._eventEmitter.emit(context.requestID, response);\n } else if (context.hasDeferOrStream) {\n this._debugManager?.log(REQUEST_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n this._eventEmitter.emit(context.requestID, response);\n } else {\n const pending = this._pending.get(context.requestID);\n\n if (!pending) {\n return;\n }\n\n pending.resolve(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 @logSubscription()\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":"AAGA,MAAM,CAAC,OAAO,UAAU,UAAU,cAErB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-request/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,UAAU,cAErB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CA6CR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-subscription/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,eAAe,cAE1B,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CA+BR"}
|
|
@@ -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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAGL,mBAAmB,EACnB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/main/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAGL,mBAAmB,EACnB,kBAAkB,EAIlB,cAAc,EAIf,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAA2E,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/G,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,WAAW;IA0BhC,IAAI,KAAK,IAAI,cAAc,CAE1B;IAEY,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,EAAE,OAAO,GAAE,mBAAwB;;;IAIvF,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,EAAE,OAAO,GAAE,mBAAwB;;;IAItF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,EAAE,OAAO,GAAE,mBAAwB;;;IAIxF,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;;;IAIpE,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,UAAU,CA2ChB;YAGY,QAAQ;YAgCR,UAAU;CAgBzB"}
|
package/package.json
CHANGED
package/src/consts/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { RequestContext } from "@graphql-box/core";
|
|
2
|
-
import {
|
|
1
|
+
import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from "@graphql-box/core";
|
|
2
|
+
import { isAsyncIterable } from "iterall";
|
|
3
3
|
|
|
4
4
|
export default function logRequest() {
|
|
5
5
|
return (
|
|
@@ -22,7 +22,7 @@ export default function logRequest() {
|
|
|
22
22
|
|
|
23
23
|
const startTime = debugManager.now();
|
|
24
24
|
|
|
25
|
-
debugManager.
|
|
25
|
+
debugManager.log(REQUEST_EXECUTED, {
|
|
26
26
|
context: otherContext,
|
|
27
27
|
options: args[1],
|
|
28
28
|
request: args[0],
|
|
@@ -34,7 +34,11 @@ export default function logRequest() {
|
|
|
34
34
|
const duration = endTime - startTime;
|
|
35
35
|
resolve(result);
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
if (isAsyncIterable(result)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
debugManager.log(REQUEST_RESOLVED, {
|
|
38
42
|
context: otherContext,
|
|
39
43
|
options: args[1],
|
|
40
44
|
request: args[0],
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { RequestContext, SUBSCRIPTION_EXECUTED } from "@graphql-box/core";
|
|
2
|
+
|
|
3
|
+
export default function logSubscription() {
|
|
4
|
+
return (
|
|
5
|
+
_target: any,
|
|
6
|
+
_propertyName: string,
|
|
7
|
+
descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,
|
|
8
|
+
): void => {
|
|
9
|
+
const method = descriptor.value;
|
|
10
|
+
if (!method) return;
|
|
11
|
+
|
|
12
|
+
descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {
|
|
13
|
+
try {
|
|
14
|
+
return new Promise(async resolve => {
|
|
15
|
+
const { debugManager, ...otherContext } = args[2] as RequestContext;
|
|
16
|
+
|
|
17
|
+
if (!debugManager) {
|
|
18
|
+
resolve(await method.apply(this, args));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const startTime = debugManager.now();
|
|
23
|
+
|
|
24
|
+
debugManager.log(SUBSCRIPTION_EXECUTED, {
|
|
25
|
+
context: otherContext,
|
|
26
|
+
options: args[1],
|
|
27
|
+
request: args[0],
|
|
28
|
+
stats: { startTime },
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const result = await method.apply(this, args);
|
|
32
|
+
resolve(result);
|
|
33
|
+
});
|
|
34
|
+
} catch (error) {
|
|
35
|
+
return Promise.reject(error);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
}
|
package/src/defs/index.ts
CHANGED
package/src/index.ts
CHANGED
package/src/main/index.ts
CHANGED
|
@@ -5,9 +5,11 @@ import {
|
|
|
5
5
|
MaybeRequestContext,
|
|
6
6
|
MaybeRequestResult,
|
|
7
7
|
QUERY,
|
|
8
|
+
REQUEST_RESOLVED,
|
|
8
9
|
RequestContext,
|
|
9
10
|
RequestOptions,
|
|
10
11
|
SUBSCRIPTION,
|
|
12
|
+
SUBSCRIPTION_RESOLVED,
|
|
11
13
|
ValidOperations,
|
|
12
14
|
} from "@graphql-box/core";
|
|
13
15
|
import { EventAsyncIterator, deserializeErrors, hashRequest, rehydrateCacheMetadata } from "@graphql-box/helpers";
|
|
@@ -16,11 +18,12 @@ import { castArray, isPlainObject } from "lodash";
|
|
|
16
18
|
import { v1 as uuid } from "uuid";
|
|
17
19
|
import { GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from "../consts";
|
|
18
20
|
import logRequest from "../debug/log-request";
|
|
21
|
+
import logSubscription from "../debug/log-subscription";
|
|
19
22
|
import { MessageContext, MessageResponsePayload, PendingResolver, PendingTracker, UserOptions } from "../defs";
|
|
20
23
|
|
|
21
24
|
export default class WorkerClient {
|
|
22
|
-
private static _getMessageContext({
|
|
23
|
-
return {
|
|
25
|
+
private static _getMessageContext({ hasDeferOrStream = false, requestID }: RequestContext): MessageContext {
|
|
26
|
+
return { hasDeferOrStream, requestID };
|
|
24
27
|
}
|
|
25
28
|
|
|
26
29
|
private _cache: WorkerCachemap;
|
|
@@ -85,13 +88,13 @@ export default class WorkerClient {
|
|
|
85
88
|
context: MaybeRequestContext = {},
|
|
86
89
|
): RequestContext {
|
|
87
90
|
return {
|
|
88
|
-
boxID: uuid(),
|
|
89
91
|
debugManager: this._debugManager,
|
|
90
92
|
fieldTypeMap: new Map(),
|
|
91
93
|
operation,
|
|
92
94
|
operationName: "",
|
|
93
95
|
queryFiltered: false,
|
|
94
96
|
request,
|
|
97
|
+
requestID: uuid(),
|
|
95
98
|
whitelistHash: hashRequest(request),
|
|
96
99
|
...context,
|
|
97
100
|
};
|
|
@@ -109,22 +112,36 @@ export default class WorkerClient {
|
|
|
109
112
|
}
|
|
110
113
|
|
|
111
114
|
const { _cacheMetadata, ...otherProps } = result;
|
|
112
|
-
const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.
|
|
115
|
+
const response: MaybeRequestResult = deserializeErrors({ ...otherProps, requestID: context.requestID });
|
|
113
116
|
|
|
114
117
|
if (_cacheMetadata) {
|
|
115
118
|
response._cacheMetadata = rehydrateCacheMetadata(_cacheMetadata);
|
|
116
119
|
}
|
|
117
120
|
|
|
118
|
-
if (method ===
|
|
119
|
-
|
|
121
|
+
if (method === SUBSCRIBE) {
|
|
122
|
+
this._debugManager?.log(SUBSCRIPTION_RESOLVED, {
|
|
123
|
+
context,
|
|
124
|
+
result: response,
|
|
125
|
+
stats: { endTime: this._debugManager?.now() },
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
this._eventEmitter.emit(context.requestID, response);
|
|
129
|
+
} else if (context.hasDeferOrStream) {
|
|
130
|
+
this._debugManager?.log(REQUEST_RESOLVED, {
|
|
131
|
+
context,
|
|
132
|
+
result: response,
|
|
133
|
+
stats: { endTime: this._debugManager?.now() },
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
this._eventEmitter.emit(context.requestID, response);
|
|
137
|
+
} else {
|
|
138
|
+
const pending = this._pending.get(context.requestID);
|
|
120
139
|
|
|
121
140
|
if (!pending) {
|
|
122
141
|
return;
|
|
123
142
|
}
|
|
124
143
|
|
|
125
144
|
pending.resolve(response);
|
|
126
|
-
} else if (method === SUBSCRIBE || context.hasDeferOrStream) {
|
|
127
|
-
this._eventEmitter.emit(context.boxID, response);
|
|
128
145
|
}
|
|
129
146
|
};
|
|
130
147
|
|
|
@@ -141,7 +158,7 @@ export default class WorkerClient {
|
|
|
141
158
|
type: GRAPHQL_BOX,
|
|
142
159
|
});
|
|
143
160
|
|
|
144
|
-
this._pending.set(context.
|
|
161
|
+
this._pending.set(context.requestID, { resolve });
|
|
145
162
|
});
|
|
146
163
|
}
|
|
147
164
|
|
|
@@ -153,14 +170,14 @@ export default class WorkerClient {
|
|
|
153
170
|
type: GRAPHQL_BOX,
|
|
154
171
|
});
|
|
155
172
|
|
|
156
|
-
const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.
|
|
173
|
+
const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);
|
|
157
174
|
return eventAsyncIterator.getIterator();
|
|
158
175
|
} catch (error) {
|
|
159
176
|
return { errors: castArray(error) };
|
|
160
177
|
}
|
|
161
178
|
}
|
|
162
179
|
|
|
163
|
-
@
|
|
180
|
+
@logSubscription()
|
|
164
181
|
private async _subscribe(request: string, options: RequestOptions, context: RequestContext) {
|
|
165
182
|
try {
|
|
166
183
|
this._worker.postMessage({
|
|
@@ -171,7 +188,7 @@ export default class WorkerClient {
|
|
|
171
188
|
type: GRAPHQL_BOX,
|
|
172
189
|
});
|
|
173
190
|
|
|
174
|
-
const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.
|
|
191
|
+
const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);
|
|
175
192
|
return eventAsyncIterator.getIterator();
|
|
176
193
|
} catch (error) {
|
|
177
194
|
return { errors: castArray(error) };
|