@graphql-box/worker-client 3.10.3 → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";import e from"@babel/runtime/helpers/objectWithoutProperties";import t from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/classCallCheck";import n from"@babel/runtime/helpers/createClass";import 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};
1
+ import"core-js/modules/es.object.keys.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.array.filter.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.object.get-own-property-descriptors.js";import e from"@babel/runtime/helpers/objectWithoutProperties";import t from"@babel/runtime/helpers/asyncToGenerator";import r from"@babel/runtime/helpers/classCallCheck";import n from"@babel/runtime/helpers/createClass";import o from"@babel/runtime/helpers/defineProperty";import a from"@babel/runtime/helpers/applyDecoratedDescriptor";import s from"lodash/isPlainObject";import c from"lodash/castArray";import u from"@babel/runtime/regenerator";import"core-js/modules/es.array.iterator.js";import"core-js/modules/es.map.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.promise.js";import"core-js/modules/es.object.get-own-property-descriptor.js";import{REQUEST_RESOLVED as i,REQUEST_EXECUTED as p,SUBSCRIPTION_EXECUTED as l,MUTATION as h,QUERY as f,SUBSCRIPTION as b,SUBSCRIPTION_RESOLVED as m}from"@graphql-box/core";import{hashRequest as g,EventAsyncIterator as d,deserializeErrors as v,rehydrateCacheMetadata as y,dehydrateCacheMetadata as w,serializeErrors as j}from"@graphql-box/helpers";import x from"eventemitter3";import{v1 as O}from"uuid";import{isAsyncIterable as _,forAwaitEach as k}from"iterall";import"core-js/modules/es.regexp.exec.js";import{handleMessage as q}from"@cachemap/core-worker";var P,M,D,E=function(e){var t=/(query|mutation|subscription) ([A-Za-z]+)(\(| {)/.exec(e);return t?t[2]:""};function I(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 C(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?I(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):I(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function S(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 T(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function B(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 R(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?B(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):B(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var A=(P=function(r,n,o){var a,s=o.value;s&&(o.value=(a=t(u.mark((function r(){var n,o,a,c=this,l=arguments;return u.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=l.length,o=new Array(n),a=0;a<n;a++)o[a]=l[a];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(u.mark((function t(r){var n,a,l,h,f,b,m,g;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=o[2],a=n.debugManager,l=e(n,["debugManager"]),a){t.next=8;break}return t.t0=r,t.next=5,s.apply(c,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return h=E(o[0]),f=a.now(),a.log(p,{context:C(C({},l),{},{operationName:h}),options:o[1],request:o[0],stats:{startTime:f}}),t.next=13,s.apply(c,o);case 13:if(b=t.sent,m=a.now(),g=m-f,r(b),!_(b)){t.next=19;break}return t.abrupt("return");case 19:a.log(i,{context:C(C({},l),{},{operationName:h}),options:o[1],request:o[0],result:b,stats:{duration:g,endTime:m,startTime:f}});case 20:case"end":return t.stop()}}),t)})));return function(e){return r.apply(this,arguments)}}()));case 5:return r.prev=5,r.t0=r.catch(1),r.abrupt("return",Promise.reject(r.t0));case 8:case"end":return r.stop()}}),r,null,[[1,5]])}))),function(){return a.apply(this,arguments)}))},M=function(r,n,o){var a,s=o.value;s&&(o.value=(a=t(u.mark((function r(){var n,o,a,c=this,i=arguments;return u.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=i.length,o=new Array(n),a=0;a<n;a++)o[a]=i[a];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(u.mark((function t(r){var n,a,i,p,h,f;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=o[2],a=n.debugManager,i=e(n,["debugManager"]),a){t.next=8;break}return t.t0=r,t.next=5,s.apply(c,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=E(o[0]),h=a.now(),a.log(l,{context:T(T({},i),{},{operationName:p}),options:o[1],request:o[0],stats:{startTime:h}}),t.next=13,s.apply(c,o);case 13:f=t.sent,r(f);case 15:case"end":return t.stop()}}),t)})));return function(e){return r.apply(this,arguments)}}()));case 5:return r.prev=5,r.t0=r.catch(1),r.abrupt("return",Promise.reject(r.t0));case 8:case"end":return r.stop()}}),r,null,[[1,5]])}))),function(){return a.apply(this,arguments)}))},a((D=function(){function a(n){var c,p=this;r(this,a),o(this,"_cache",void 0),o(this,"_debugManager",void 0),o(this,"_eventEmitter",void 0),o(this,"_pending",new Map),o(this,"_worker",void 0),o(this,"_onMessage",(c=t(u.mark((function t(r){var n,o,a,c,l,h,f,b,g,d,w,j,x;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=r.data,s(n)){t.next=3;break}return t.abrupt("return");case 3:if(a=(o=n).context,c=o.method,l=o.result,"graphqlBox"===o.type&&s(l)){t.next=6;break}return t.abrupt("return");case 6:if(h=l._cacheMetadata,f=e(l,["_cacheMetadata"]),b=v(R(R({},f),{},{requestID:a.requestID})),h&&(b._cacheMetadata=y(h)),"subscribe"!==c){t.next=14;break}null===(g=p._debugManager)||void 0===g||g.log(m,{context:a,result:b,stats:{endTime:null===(d=p._debugManager)||void 0===d?void 0:d.now()}}),p._eventEmitter.emit(a.requestID,b),t.next=23;break;case 14:if(!a.hasDeferOrStream){t.next=19;break}null===(w=p._debugManager)||void 0===w||w.log(i,{context:a,result:b,stats:{endTime:null===(j=p._debugManager)||void 0===j?void 0:j.now()}}),p._eventEmitter.emit(a.requestID,b),t.next=23;break;case 19:if(x=p._pending.get(a.requestID)){t.next=22;break}return t.abrupt("return");case 22:x.resolve(b);case 23:case"end":return t.stop()}}),t)}))),function(e){return c.apply(this,arguments)}));var l=[];if(s(n)||l.push(new TypeError("@graphql-box/client expected options to ba a plain object.")),n.cache||l.push(new TypeError("@graphql-box/client expected options.cache.")),n.worker||l.push(new TypeError("@graphql-box/client expected options.worker.")),l.length)throw l;this._cache=n.cache,this._debugManager=n.debugManager?n.debugManager():null,this._eventEmitter=new x,this._worker=n.worker,this._addEventListener()}var p,l,w,j,_,k;return n(a,[{key:"cache",get:function(){return this._cache}},{key:"mutate",value:(k=t(u.mark((function e(t){var r,n,o=arguments;return u.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(h,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return k.apply(this,arguments)})},{key:"query",value:(_=t(u.mark((function e(t){var r,n,o=arguments;return u.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(f,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return _.apply(this,arguments)})},{key:"request",value:(j=t(u.mark((function e(t){var r,n,o=arguments;return u.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(f,t,n)));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return j.apply(this,arguments)})},{key:"subscribe",value:(w=t(u.mark((function e(t){var r,n=arguments;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.length>1&&void 0!==n[1]?n[1]:{},e.abrupt("return",this._subscribe(t,r,this._getRequestContext(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 R({debugManager:this._debugManager,fieldTypeMap:new Map,operation:e,operationName:"",queryFiltered:!1,request:t,requestID:O(),whitelistHash:g(t)},r)}},{key:"_request",value:(l=t(u.mark((function e(t,r,n){var o,s=this;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n.hasDeferOrStream){e.next=3;break}return e.abrupt("return",new Promise((function(e){s._worker.postMessage({context:a._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),s._pending.set(n.requestID,{resolve:e})})));case 3:return this._worker.postMessage({context:a._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o=new d(this._eventEmitter,n.requestID),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 l.apply(this,arguments)})},{key:"_subscribe",value:(p=t(u.mark((function e(t,r,n){var o;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:a._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new d(this._eventEmitter,n.requestID),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 p.apply(this,arguments)})}],[{key:"_getMessageContext",value:function(e){var t=e.hasDeferOrStream;return{hasDeferOrStream:void 0!==t&&t,requestID:e.requestID}}}]),a}()).prototype,"_request",[P],Object.getOwnPropertyDescriptor(D.prototype,"_request"),D.prototype),a(D.prototype,"_subscribe",[M],Object.getOwnPropertyDescriptor(D.prototype,"_subscribe"),D.prototype),D);function L(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 N(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?L(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var z=self,F=z.addEventListener,G=z.postMessage;function H(){return(H=t(u.mark((function t(r,n,o,a,s){var c,i,p,l,h;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.request(r,o,a);case 2:if(c=t.sent,_(c)){t.next=9;break}return p=(i=c)._cacheMetadata,l=e(i,["_cacheMetadata"]),h=N({},l),p&&(h._cacheMetadata=w(p)),G({context:a,method:n,result:j(h),type:"graphqlBox"}),t.abrupt("return");case 9:k(c,(function(t){var r=t._cacheMetadata,o=N({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=w(r)),G({context:a,method:n,result:j(o),type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function W(){return(W=t(u.mark((function t(r,n,o,a,s){var c;return u.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.subscribe(r,o,a);case 2:if(c=t.sent,_(c)){t.next=6;break}return G({context:a,method:n,result:j(c),type:"graphqlBox"}),t.abrupt("return");case 6:k(c,(function(t){var r=t._cacheMetadata,o=N({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=w(r)),G({context:a,method:n,result:j(o),type:"graphqlBox"})}));case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Z(e,t){var r=e,n=r.context,o=r.method,a=r.options,s=r.request;"request"===o?function(e,t,r,n,o){H.apply(this,arguments)}(s,o,a,n,t):"subscribe"===o&&function(e,t,r,n,o){W.apply(this,arguments)}(s,o,a,n,t)}function J(e){return K.apply(this,arguments)}function K(){return(K=t(u.mark((function e(t){var r,n;return u.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=function(e){var t=e.data;if(s(t)){var n=t.type;"graphqlBox"===n?Z(t,r):"cachemap"===n&&r.cache&&q(t,r.cache)}},r=t.client,F("message",n);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}export default A;export{J as registerWorker};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../worker-client/src/consts/index.ts","../worker-client/src/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
+ {"version":3,"file":"index.js","sources":["../worker-client/src/consts/index.ts","../worker-client/src/helpers/operationNameRegex.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","export default (request: string) => {\n const output = /(query|mutation|subscription) ([A-Za-z]+)(\\(| {)/.exec(request);\n return output ? output[2] : \"\";\n};\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\";\nimport operationNameRegex from \"../../helpers/operationNameRegex\";\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 derivedOperationName = operationNameRegex(args[0]);\n const startTime = debugManager.now();\n\n debugManager.log(REQUEST_EXECUTED, {\n context: { ...otherContext, operationName: derivedOperationName },\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, operationName: derivedOperationName },\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\";\nimport operationNameRegex from \"../../helpers/operationNameRegex\";\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 derivedOperationName = operationNameRegex(args[0]);\n const startTime = debugManager.now();\n\n debugManager.log(SUBSCRIPTION_EXECUTED, {\n context: { ...otherContext, operationName: derivedOperationName },\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":["request","output","exec","WorkerClient","_target","_propertyName","descriptor","method","value","args","Promise","resolve","debugManager","otherContext","apply","_this","derivedOperationName","operationNameRegex","startTime","now","log","REQUEST_EXECUTED","context","operationName","options","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","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,50 +1,60 @@
1
1
  -----------------------------
2
2
  Rollup File Analysis
3
3
  -----------------------------
4
- bundle size: 28.786 KB
5
- original size: 13.585 KB
4
+ bundle size: 31.368 KB
5
+ original size: 14.145 KB
6
6
  code reduction: 0 %
7
- module count: 7
7
+ module count: 8
8
8
 
9
- ████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░
9
+ ██████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░
10
10
  file: /src/main/index.ts
11
- bundle space: 49.82 %
12
- rendered size: 14.341 KB
11
+ bundle space: 45.76 %
12
+ rendered size: 14.355 KB
13
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: 22.11 %
20
+ bundle space: 20.29 %
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: 15.4 %
30
- rendered size: 4.432 KB
31
- original size: 1.539 KB
29
+ bundle space: 18.17 %
30
+ rendered size: 5.698 KB
31
+ original size: 1.762 KB
32
32
  code reduction: 0 %
33
33
  dependents: 1
34
34
  - /src/main/index.ts
35
35
 
36
- ██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
36
+ ███████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
37
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
38
+ bundle space: 14.81 %
39
+ rendered size: 4.647 KB
40
+ original size: 1.274 KB
41
41
  code reduction: 0 %
42
42
  dependents: 1
43
43
  - /src/main/index.ts
44
44
 
45
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
46
+ file: /src/helpers/operationNameRegex.ts
47
+ bundle space: 0.53 %
48
+ rendered size: 165 Bytes
49
+ original size: 158 Bytes
50
+ code reduction: 0 %
51
+ dependents: 2
52
+ - /src/debug/log-request/index.ts
53
+ - /src/debug/log-subscription/index.ts
54
+
45
55
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
46
56
  file: /src/consts/index.ts
47
- bundle space: 0.48 %
57
+ bundle space: 0.44 %
48
58
  rendered size: 137 Bytes
49
59
  original size: 185 Bytes
50
60
  code reduction: 25.95 %
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -11,6 +13,8 @@ var _core = require("@graphql-box/core");
11
13
 
12
14
  var _iterall = require("iterall");
13
15
 
16
+ var _operationNameRegex = _interopRequireDefault(require("../../helpers/operationNameRegex"));
17
+
14
18
  function logRequest() {
15
19
  return (_target, _propertyName, descriptor) => {
16
20
  const method = descriptor.value;
@@ -29,9 +33,12 @@ function logRequest() {
29
33
  return;
30
34
  }
31
35
 
36
+ const derivedOperationName = (0, _operationNameRegex.default)(args[0]);
32
37
  const startTime = debugManager.now();
33
38
  debugManager.log(_core.REQUEST_EXECUTED, {
34
- context: otherContext,
39
+ context: { ...otherContext,
40
+ operationName: derivedOperationName
41
+ },
35
42
  options: args[1],
36
43
  request: args[0],
37
44
  stats: {
@@ -48,7 +55,9 @@ function logRequest() {
48
55
  }
49
56
 
50
57
  debugManager.log(_core.REQUEST_RESOLVED, {
51
- context: otherContext,
58
+ context: { ...otherContext,
59
+ operationName: derivedOperationName
60
+ },
52
61
  options: args[1],
53
62
  request: args[0],
54
63
  result,
@@ -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","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"}
1
+ {"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","derivedOperationName","startTime","now","log","REQUEST_EXECUTED","context","operationName","options","request","stats","result","endTime","duration","REQUEST_RESOLVED","error","reject"],"mappings":";;;;;;;;;;;AAAA;;AACA;;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,oBAAoB,GAAG,iCAAmBN,IAAI,CAAC,CAAD,CAAvB,CAA7B;AACA,gBAAMO,SAAS,GAAGJ,YAAY,CAACK,GAAb,EAAlB;AAEAL,UAAAA,YAAY,CAACM,GAAb,CAAiBC,sBAAjB,EAAmC;AACjCC,YAAAA,OAAO,EAAE,EAAE,GAAGP,YAAL;AAAmBQ,cAAAA,aAAa,EAAEN;AAAlC,aADwB;AAEjCO,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAFoB;AAGjCc,YAAAA,OAAO,EAAEd,IAAI,CAAC,CAAD,CAHoB;AAIjCe,YAAAA,KAAK,EAAE;AAAER,cAAAA;AAAF;AAJ0B,WAAnC;AAOA,gBAAMS,MAAM,GAAG,MAAMnB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACA,gBAAMiB,OAAO,GAAGd,YAAY,CAACK,GAAb,EAAhB;AACA,gBAAMU,QAAQ,GAAGD,OAAO,GAAGV,SAA3B;AACAL,UAAAA,OAAO,CAACc,MAAD,CAAP;;AAEA,cAAI,8BAAgBA,MAAhB,CAAJ,EAA6B;AAC3B;AACD;;AAEDb,UAAAA,YAAY,CAACM,GAAb,CAAiBU,sBAAjB,EAAmC;AACjCR,YAAAA,OAAO,EAAE,EAAE,GAAGP,YAAL;AAAmBQ,cAAAA,aAAa,EAAEN;AAAlC,aADwB;AAEjCO,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAFoB;AAGjCc,YAAAA,OAAO,EAAEd,IAAI,CAAC,CAAD,CAHoB;AAIjCgB,YAAAA,MAJiC;AAKjCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBV,cAAAA;AAArB;AAL0B,WAAnC;AAOD,SAlCM,CAAP;AAmCD,OApCD,CAoCE,OAAOa,KAAP,EAAc;AACd,eAAOnB,OAAO,CAACoB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KAxCD;AAyCD,GAjDD;AAkDD","sourcesContent":["import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\nimport { isAsyncIterable } from \"iterall\";\nimport operationNameRegex from \"../../helpers/operationNameRegex\";\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 derivedOperationName = operationNameRegex(args[0]);\n const startTime = debugManager.now();\n\n debugManager.log(REQUEST_EXECUTED, {\n context: { ...otherContext, operationName: derivedOperationName },\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, operationName: derivedOperationName },\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"}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -9,6 +11,8 @@ require("core-js/modules/es.promise.js");
9
11
 
10
12
  var _core = require("@graphql-box/core");
11
13
 
14
+ var _operationNameRegex = _interopRequireDefault(require("../../helpers/operationNameRegex"));
15
+
12
16
  function logSubscription() {
13
17
  return (_target, _propertyName, descriptor) => {
14
18
  const method = descriptor.value;
@@ -27,9 +31,12 @@ function logSubscription() {
27
31
  return;
28
32
  }
29
33
 
34
+ const derivedOperationName = (0, _operationNameRegex.default)(args[0]);
30
35
  const startTime = debugManager.now();
31
36
  debugManager.log(_core.SUBSCRIPTION_EXECUTED, {
32
- context: otherContext,
37
+ context: { ...otherContext,
38
+ operationName: derivedOperationName
39
+ },
33
40
  options: args[1],
34
41
  request: args[0],
35
42
  stats: {
@@ -1 +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"}
1
+ {"version":3,"sources":["../../../../src/debug/log-subscription/index.ts"],"names":["logSubscription","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","derivedOperationName","startTime","now","log","SUBSCRIPTION_EXECUTED","context","operationName","options","request","stats","result","error","reject"],"mappings":";;;;;;;;;;;AAAA;;AACA;;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,oBAAoB,GAAG,iCAAmBN,IAAI,CAAC,CAAD,CAAvB,CAA7B;AACA,gBAAMO,SAAS,GAAGJ,YAAY,CAACK,GAAb,EAAlB;AAEAL,UAAAA,YAAY,CAACM,GAAb,CAAiBC,2BAAjB,EAAwC;AACtCC,YAAAA,OAAO,EAAE,EAAE,GAAGP,YAAL;AAAmBQ,cAAAA,aAAa,EAAEN;AAAlC,aAD6B;AAEtCO,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAFyB;AAGtCc,YAAAA,OAAO,EAAEd,IAAI,CAAC,CAAD,CAHyB;AAItCe,YAAAA,KAAK,EAAE;AAAER,cAAAA;AAAF;AAJ+B,WAAxC;AAOA,gBAAMS,MAAM,GAAG,MAAMnB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACAE,UAAAA,OAAO,CAACc,MAAD,CAAP;AACD,SApBM,CAAP;AAqBD,OAtBD,CAsBE,OAAOC,KAAP,EAAc;AACd,eAAOhB,OAAO,CAACiB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KA1BD;AA2BD,GAnCD;AAoCD","sourcesContent":["import { RequestContext, SUBSCRIPTION_EXECUTED } from \"@graphql-box/core\";\nimport operationNameRegex from \"../../helpers/operationNameRegex\";\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 derivedOperationName = operationNameRegex(args[0]);\n const startTime = debugManager.now();\n\n debugManager.log(SUBSCRIPTION_EXECUTED, {\n context: { ...otherContext, operationName: derivedOperationName },\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"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _default = request => {
9
+ const output = /(query|mutation|subscription) ([A-Za-z]+)(\(| {)/.exec(request);
10
+ return output ? output[2] : "";
11
+ };
12
+
13
+ exports.default = _default;
14
+ //# sourceMappingURL=operationNameRegex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/helpers/operationNameRegex.ts"],"names":["request","output","exec"],"mappings":";;;;;;;eAAgBA,OAAD,IAAqB;AAClC,QAAMC,MAAM,GAAG,mDAAmDC,IAAnD,CAAwDF,OAAxD,CAAf;AACA,SAAOC,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAT,GAAe,EAA5B;AACD,C","sourcesContent":["export default (request: string) => {\n const output = /(query|mutation|subscription) ([A-Za-z]+)(\\(| {)/.exec(request);\n return output ? output[2] : \"\";\n};\n"],"file":"operationNameRegex.js"}
@@ -1,6 +1,7 @@
1
1
  import "core-js/modules/es.promise.js";
2
2
  import { REQUEST_EXECUTED, REQUEST_RESOLVED } from "@graphql-box/core";
3
3
  import { isAsyncIterable } from "iterall";
4
+ import operationNameRegex from "../../helpers/operationNameRegex";
4
5
  export default function logRequest() {
5
6
  return (_target, _propertyName, descriptor) => {
6
7
  const method = descriptor.value;
@@ -19,9 +20,12 @@ export default function logRequest() {
19
20
  return;
20
21
  }
21
22
 
23
+ const derivedOperationName = operationNameRegex(args[0]);
22
24
  const startTime = debugManager.now();
23
25
  debugManager.log(REQUEST_EXECUTED, {
24
- context: otherContext,
26
+ context: { ...otherContext,
27
+ operationName: derivedOperationName
28
+ },
25
29
  options: args[1],
26
30
  request: args[0],
27
31
  stats: {
@@ -38,7 +42,9 @@ export default function logRequest() {
38
42
  }
39
43
 
40
44
  debugManager.log(REQUEST_RESOLVED, {
41
- context: otherContext,
45
+ context: { ...otherContext,
46
+ operationName: derivedOperationName
47
+ },
42
48
  options: args[1],
43
49
  request: args[0],
44
50
  result,
@@ -1 +1 @@
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"}
1
+ {"version":3,"sources":["../../../../src/debug/log-request/index.ts"],"names":["REQUEST_EXECUTED","REQUEST_RESOLVED","isAsyncIterable","operationNameRegex","logRequest","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","derivedOperationName","startTime","now","log","context","operationName","options","request","stats","result","endTime","duration","error","reject"],"mappings":";AAAA,SAASA,gBAAT,EAA2BC,gBAA3B,QAAmE,mBAAnE;AACA,SAASC,eAAT,QAAgC,SAAhC;AACA,OAAOC,kBAAP,MAA+B,kCAA/B;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,oBAAoB,GAAGd,kBAAkB,CAACQ,IAAI,CAAC,CAAD,CAAL,CAA/C;AACA,gBAAMO,SAAS,GAAGJ,YAAY,CAACK,GAAb,EAAlB;AAEAL,UAAAA,YAAY,CAACM,GAAb,CAAiBpB,gBAAjB,EAAmC;AACjCqB,YAAAA,OAAO,EAAE,EAAE,GAAGN,YAAL;AAAmBO,cAAAA,aAAa,EAAEL;AAAlC,aADwB;AAEjCM,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAFoB;AAGjCa,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAHoB;AAIjCc,YAAAA,KAAK,EAAE;AAAEP,cAAAA;AAAF;AAJ0B,WAAnC;AAOA,gBAAMQ,MAAM,GAAG,MAAMlB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACA,gBAAMgB,OAAO,GAAGb,YAAY,CAACK,GAAb,EAAhB;AACA,gBAAMS,QAAQ,GAAGD,OAAO,GAAGT,SAA3B;AACAL,UAAAA,OAAO,CAACa,MAAD,CAAP;;AAEA,cAAIxB,eAAe,CAACwB,MAAD,CAAnB,EAA6B;AAC3B;AACD;;AAEDZ,UAAAA,YAAY,CAACM,GAAb,CAAiBnB,gBAAjB,EAAmC;AACjCoB,YAAAA,OAAO,EAAE,EAAE,GAAGN,YAAL;AAAmBO,cAAAA,aAAa,EAAEL;AAAlC,aADwB;AAEjCM,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAFoB;AAGjCa,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAHoB;AAIjCe,YAAAA,MAJiC;AAKjCD,YAAAA,KAAK,EAAE;AAAEG,cAAAA,QAAF;AAAYD,cAAAA,OAAZ;AAAqBT,cAAAA;AAArB;AAL0B,WAAnC;AAOD,SAlCM,CAAP;AAmCD,OApCD,CAoCE,OAAOW,KAAP,EAAc;AACd,eAAOjB,OAAO,CAACkB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KAxCD;AAyCD,GAjDD;AAkDD","sourcesContent":["import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from \"@graphql-box/core\";\nimport { isAsyncIterable } from \"iterall\";\nimport operationNameRegex from \"../../helpers/operationNameRegex\";\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 derivedOperationName = operationNameRegex(args[0]);\n const startTime = debugManager.now();\n\n debugManager.log(REQUEST_EXECUTED, {\n context: { ...otherContext, operationName: derivedOperationName },\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, operationName: derivedOperationName },\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"}
@@ -1,5 +1,6 @@
1
1
  import "core-js/modules/es.promise.js";
2
2
  import { SUBSCRIPTION_EXECUTED } from "@graphql-box/core";
3
+ import operationNameRegex from "../../helpers/operationNameRegex";
3
4
  export default function logSubscription() {
4
5
  return (_target, _propertyName, descriptor) => {
5
6
  const method = descriptor.value;
@@ -18,9 +19,12 @@ export default function logSubscription() {
18
19
  return;
19
20
  }
20
21
 
22
+ const derivedOperationName = operationNameRegex(args[0]);
21
23
  const startTime = debugManager.now();
22
24
  debugManager.log(SUBSCRIPTION_EXECUTED, {
23
- context: otherContext,
25
+ context: { ...otherContext,
26
+ operationName: derivedOperationName
27
+ },
24
28
  options: args[1],
25
29
  request: args[0],
26
30
  stats: {
@@ -1 +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"}
1
+ {"version":3,"sources":["../../../../src/debug/log-subscription/index.ts"],"names":["SUBSCRIPTION_EXECUTED","operationNameRegex","logSubscription","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","derivedOperationName","startTime","now","log","context","operationName","options","request","stats","result","error","reject"],"mappings":";AAAA,SAAyBA,qBAAzB,QAAsD,mBAAtD;AACA,OAAOC,kBAAP,MAA+B,kCAA/B;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,oBAAoB,GAAGd,kBAAkB,CAACQ,IAAI,CAAC,CAAD,CAAL,CAA/C;AACA,gBAAMO,SAAS,GAAGJ,YAAY,CAACK,GAAb,EAAlB;AAEAL,UAAAA,YAAY,CAACM,GAAb,CAAiBlB,qBAAjB,EAAwC;AACtCmB,YAAAA,OAAO,EAAE,EAAE,GAAGN,YAAL;AAAmBO,cAAAA,aAAa,EAAEL;AAAlC,aAD6B;AAEtCM,YAAAA,OAAO,EAAEZ,IAAI,CAAC,CAAD,CAFyB;AAGtCa,YAAAA,OAAO,EAAEb,IAAI,CAAC,CAAD,CAHyB;AAItCc,YAAAA,KAAK,EAAE;AAAEP,cAAAA;AAAF;AAJ+B,WAAxC;AAOA,gBAAMQ,MAAM,GAAG,MAAMlB,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAArB;AACAE,UAAAA,OAAO,CAACa,MAAD,CAAP;AACD,SApBM,CAAP;AAqBD,OAtBD,CAsBE,OAAOC,KAAP,EAAc;AACd,eAAOf,OAAO,CAACgB,MAAR,CAAeD,KAAf,CAAP;AACD;AACF,KA1BD;AA2BD,GAnCD;AAoCD","sourcesContent":["import { RequestContext, SUBSCRIPTION_EXECUTED } from \"@graphql-box/core\";\nimport operationNameRegex from \"../../helpers/operationNameRegex\";\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 derivedOperationName = operationNameRegex(args[0]);\n const startTime = debugManager.now();\n\n debugManager.log(SUBSCRIPTION_EXECUTED, {\n context: { ...otherContext, operationName: derivedOperationName },\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"}
@@ -0,0 +1,5 @@
1
+ export default (request => {
2
+ const output = /(query|mutation|subscription) ([A-Za-z]+)(\(| {)/.exec(request);
3
+ return output ? output[2] : "";
4
+ });
5
+ //# sourceMappingURL=operationNameRegex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/helpers/operationNameRegex.ts"],"names":["request","output","exec"],"mappings":"AAAA,gBAAgBA,OAAD,IAAqB;AAClC,QAAMC,MAAM,GAAG,mDAAmDC,IAAnD,CAAwDF,OAAxD,CAAf;AACA,SAAOC,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAT,GAAe,EAA5B;AACD,CAHD","sourcesContent":["export default (request: string) => {\n const output = /(query|mutation|subscription) ([A-Za-z]+)(\\(| {)/.exec(request);\n return output ? output[2] : \"\";\n};\n"],"file":"operationNameRegex.js"}
@@ -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,CA6CR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-request/index.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,UAAU,cAErB,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CA8CR"}
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/log-subscription/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,eAAe,cAE1B,GAAG,iBACG,MAAM,gDACyB,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC,MACnE,IAAI,CAgCR"}
@@ -0,0 +1,3 @@
1
+ declare const _default: (request: string) => string;
2
+ export default _default;
3
+ //# sourceMappingURL=operationNameRegex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operationNameRegex.d.ts","sourceRoot":"","sources":["../../../src/helpers/operationNameRegex.ts"],"names":[],"mappings":"kCAAyB,MAAM;AAA/B,wBAGE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=operationNameRegex.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operationNameRegex.test.d.ts","sourceRoot":"","sources":["../../../src/helpers/operationNameRegex.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphql-box/worker-client",
3
- "version": "3.10.3",
3
+ "version": "3.12.0",
4
4
  "description": "The GraphQL Box web worker client module.",
5
5
  "author": "Dylan Aubrey <dylanaubrey@gmail.com>",
6
6
  "license": "MIT",
@@ -1,5 +1,6 @@
1
1
  import { REQUEST_EXECUTED, REQUEST_RESOLVED, RequestContext } from "@graphql-box/core";
2
2
  import { isAsyncIterable } from "iterall";
3
+ import operationNameRegex from "../../helpers/operationNameRegex";
3
4
 
4
5
  export default function logRequest() {
5
6
  return (
@@ -20,10 +21,11 @@ export default function logRequest() {
20
21
  return;
21
22
  }
22
23
 
24
+ const derivedOperationName = operationNameRegex(args[0]);
23
25
  const startTime = debugManager.now();
24
26
 
25
27
  debugManager.log(REQUEST_EXECUTED, {
26
- context: otherContext,
28
+ context: { ...otherContext, operationName: derivedOperationName },
27
29
  options: args[1],
28
30
  request: args[0],
29
31
  stats: { startTime },
@@ -39,7 +41,7 @@ export default function logRequest() {
39
41
  }
40
42
 
41
43
  debugManager.log(REQUEST_RESOLVED, {
42
- context: otherContext,
44
+ context: { ...otherContext, operationName: derivedOperationName },
43
45
  options: args[1],
44
46
  request: args[0],
45
47
  result,
@@ -1,4 +1,5 @@
1
1
  import { RequestContext, SUBSCRIPTION_EXECUTED } from "@graphql-box/core";
2
+ import operationNameRegex from "../../helpers/operationNameRegex";
2
3
 
3
4
  export default function logSubscription() {
4
5
  return (
@@ -19,10 +20,11 @@ export default function logSubscription() {
19
20
  return;
20
21
  }
21
22
 
23
+ const derivedOperationName = operationNameRegex(args[0]);
22
24
  const startTime = debugManager.now();
23
25
 
24
26
  debugManager.log(SUBSCRIPTION_EXECUTED, {
25
- context: otherContext,
27
+ context: { ...otherContext, operationName: derivedOperationName },
26
28
  options: args[1],
27
29
  request: args[0],
28
30
  stats: { startTime },
@@ -0,0 +1,85 @@
1
+ import operationNameRegex from "./operationNameRegex";
2
+
3
+ describe("operationNameRegex", () => {
4
+ test("when request does not have operation type", () => {
5
+ const request = `
6
+ {
7
+ human(id: "1000") {
8
+ name
9
+ height(unit: FOOT)
10
+ }
11
+ }
12
+ `;
13
+
14
+ expect(operationNameRegex(request)).toBe("");
15
+ });
16
+
17
+ test("when request does not have operation name", () => {
18
+ const request = `
19
+ query {
20
+ human(id: "1000") {
21
+ name
22
+ height(unit: FOOT)
23
+ }
24
+ }
25
+ `;
26
+
27
+ expect(operationNameRegex(request)).toBe("");
28
+ });
29
+
30
+ test("when request has operation name but no arguments", () => {
31
+ const request = `
32
+ query HeroNameAndFriends {
33
+ hero(episode: $episode) {
34
+ name
35
+ friends {
36
+ name
37
+ }
38
+ }
39
+ }
40
+ `;
41
+
42
+ expect(operationNameRegex(request)).toBe("HeroNameAndFriends");
43
+ });
44
+
45
+ test("when request has operation name and arguments", () => {
46
+ const request = `
47
+ query HeroNameAndFriends($episode: Episode = JEDI) {
48
+ hero(episode: $episode) {
49
+ name
50
+ friends {
51
+ name
52
+ }
53
+ }
54
+ }
55
+ `;
56
+
57
+ expect(operationNameRegex(request)).toBe("HeroNameAndFriends");
58
+ });
59
+
60
+ test("when request is mutation", () => {
61
+ const request = `
62
+ mutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) {
63
+ createReview(episode: $ep, review: $review) {
64
+ stars
65
+ commentary
66
+ }
67
+ }
68
+ `;
69
+
70
+ expect(operationNameRegex(request)).toBe("CreateReviewForEpisode");
71
+ });
72
+
73
+ test("when request is subscription", () => {
74
+ const request = `
75
+ subscription OnCommentAdded($postID: ID!) {
76
+ commentAdded(postID: $postID) {
77
+ id
78
+ content
79
+ }
80
+ }
81
+ `;
82
+
83
+ expect(operationNameRegex(request)).toBe("OnCommentAdded");
84
+ });
85
+ });
@@ -0,0 +1,4 @@
1
+ export default (request: string) => {
2
+ const output = /(query|mutation|subscription) ([A-Za-z]+)(\(| {)/.exec(request);
3
+ return output ? output[2] : "";
4
+ };