@graphql-box/worker-client 4.1.4 → 4.1.6
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 +7 -7
- package/lib/main/main/index.js +1 -1
- package/lib/main/main/index.js.map +1 -1
- package/lib/module/consts/{index.js → index.mjs} +1 -1
- package/lib/module/consts/{index.js.map → index.mjs.map} +1 -1
- package/lib/module/debug/log-request/{index.js → index.mjs} +1 -1
- package/lib/module/debug/log-request/{index.js.map → index.mjs.map} +1 -1
- package/lib/module/debug/log-subscription/{index.js → index.mjs} +1 -1
- package/lib/module/debug/log-subscription/{index.js.map → index.mjs.map} +1 -1
- package/lib/module/defs/index.mjs +2 -0
- package/lib/module/defs/{index.js.map → index.mjs.map} +1 -1
- package/lib/module/helpers/{operationNameRegex.js → operationNameRegex.mjs} +1 -1
- package/lib/module/helpers/{operationNameRegex.js.map → operationNameRegex.mjs.map} +1 -1
- package/lib/module/{index.js → index.mjs} +1 -1
- package/lib/module/{index.js.map → index.mjs.map} +1 -1
- package/lib/module/main/{index.js → index.mjs} +2 -2
- package/lib/module/main/index.mjs.map +1 -0
- package/lib/module/register-worker/{index.js → index.mjs} +1 -1
- package/lib/module/register-worker/{index.js.map → index.mjs.map} +1 -1
- package/lib/types/defs/index.d.ts +2 -1
- package/lib/types/defs/index.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/defs/index.ts +2 -1
- package/src/main/index.ts +1 -1
- package/lib/module/defs/index.js +0 -2
- package/lib/module/main/index.js.map +0 -1
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 a from"@babel/runtime/helpers/applyDecoratedDescriptor";import s 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 l,MUTATION as f,QUERY as h,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 j from"eventemitter3";import{v1 as O}from"uuid";import{isAsyncIterable as _,forAwaitEach as q}from"iterall";import"core-js/modules/es.regexp.exec.js";import{handleMessage as k}from"@cachemap/core-worker";var P,D,M,E=function(e){var t=/(query|mutation|subscription) ([A-Za-z]+)(\(| {)/.exec(e);return t?t[2]:""};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 I(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 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 T(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}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(c.mark((function r(){var n,o,a,u=this,l=arguments;return c.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(c.mark((function t(r){var n,a,l,f,h,b,m,d;return c.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(u,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return f=E(o[0]),h=a.now(),a.log(p,{context:I(I({},l),{},{operationName:f}),options:o[1],request:o[0],stats:{startTime:h}}),t.next=13,s.apply(u,o);case 13:if(b=t.sent,m=a.now(),d=m-h,r(b),!_(b)){t.next=19;break}return t.abrupt("return");case 19:a.log(i,{context:I(I({},l),{},{operationName:f}),options:o[1],request:o[0],result:b,stats:{duration:d,endTime:m,startTime:h}});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)}))},D=function(r,n,o){var a,s=o.value;s&&(o.value=(a=t(c.mark((function r(){var n,o,a,u=this,i=arguments;return c.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=i.length,o=new Array(n),a=0;a<n;a++)o[a]=i[a];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(c.mark((function t(r){var n,a,i,p,f,h;return c.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(u,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=E(o[0]),f=a.now(),a.log(l,{context:T(T({},i),{},{operationName:p}),options:o[1],request:o[0],stats:{startTime:f}}),t.next=13,s.apply(u,o);case 13:h=t.sent,r(h);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((M=function(){function a(n){var u,p,l,f=this;r(this,a),o(this,"_cache",void 0),o(this,"_debugManager",void 0),o(this,"_eventEmitter",void 0),o(this,"_experimentalDeferStreamSupport",void 0),o(this,"_pending",new Map),o(this,"_worker",void 0),o(this,"_onMessage",(l=t(c.mark((function t(r){var n,o,a,u,p,l,h,b,d,w,x,j,O,_,q,k,P;return c.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,u=o.method,p=o.result,"graphqlBox"===o.type&&s(p)){t.next=6;break}return t.abrupt("return");case 6:if(l=p._cacheMetadata,h=e(p,["_cacheMetadata"]),b=v(R(R({},h),{},{requestID:a.requestID})),l&&(b._cacheMetadata=y(l)),"subscribe"!==u){t.next=14;break}null===(d=f._debugManager)||void 0===d||d.log(m,{context:a,result:b,stats:{endTime:null===(w=f._debugManager)||void 0===w?void 0:w.now()}}),f._eventEmitter.emit(a.requestID,b),t.next=26;break;case 14:if(!a.hasDeferOrStream){t.next=21;break}(O=f._pending.get(a.requestID))&&(_=new g(f._eventEmitter,a.requestID),O.resolve(_.getIterator())),null===(x=f._debugManager)||void 0===x||x.log(i,{context:a,result:b,stats:{endTime:null===(j=f._debugManager)||void 0===j?void 0:j.now()}}),f._eventEmitter.emit(a.requestID,b),t.next=26;break;case 21:if(P=f._pending.get(a.requestID)){t.next=24;break}return t.abrupt("return");case 24:null===(q=f._debugManager)||void 0===q||q.log(i,{context:a,result:b,stats:{endTime:null===(k=f._debugManager)||void 0===k?void 0:k.now()}}),P.resolve(b);case 26:case"end":return t.stop()}}),t)}))),function(e){return l.apply(this,arguments)}));var h=[];if(s(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=null!==(u=n.debugManager)&&void 0!==u?u:null,this._eventEmitter=new j,this._experimentalDeferStreamSupport=null!==(p=n.experimentalDeferStreamSupport)&&void 0!==p&&p,this._worker=n.worker,this._addEventListener()}var p,l,w,x,_,q;return n(a,[{key:"cache",get:function(){return this._cache}},{key:"mutate",value:(q=t(c.mark((function e(t){var r,n,o=arguments;return c.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 q.apply(this,arguments)})},{key:"query",value:(_=t(c.mark((function e(t){var r,n,o=arguments;return c.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 _.apply(this,arguments)})},{key:"request",value:(x=t(c.mark((function e(t){var r,n,o=arguments;return c.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 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 R({debugManager:this._debugManager,experimentalDeferStreamSupport:this._experimentalDeferStreamSupport,fieldTypeMap:new Map,filteredRequest:"",operation:e,operationName:"",parsedRequest:"",queryFiltered:!1,request:t,requestComplexity:null,requestDepth:null,requestID:O(),whitelistHash:d(t)},r)}},{key:"_request",value:(l=t(c.mark((function e(t,r,n){var o=this;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,new Promise((function(e){o._worker.postMessage({context:a._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o._pending.set(n.requestID,{resolve:e})}));case 3:return e.abrupt("return",e.sent);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,null,[[0,6]])}))),function(e,t,r){return l.apply(this,arguments)})},{key:"_subscribe",value:(p=t(c.mark((function e(t,r,n){var o;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:a._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new g(this._eventEmitter,n.requestID),e.abrupt("return",o.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}}}]),a}()).prototype,"_request",[P],Object.getOwnPropertyDescriptor(M.prototype,"_request"),M.prototype),a(M.prototype,"_subscribe",[D],Object.getOwnPropertyDescriptor(M.prototype,"_subscribe"),M.prototype),M);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(c.mark((function t(r,n,o,a,s){var u,i,p,l,f;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.request(r,o,a);case 2:if(u=t.sent,_(u)){t.next=9;break}return p=(i=u)._cacheMetadata,l=e(i,["_cacheMetadata"]),f=N({},l),p&&(f._cacheMetadata=w(p)),G({context:a,method:n,result:x(f),type:"graphqlBox"}),t.abrupt("return");case 9:q(u,(function(t){var r=t._cacheMetadata,o=N({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=w(r)),G({context:a,method:n,result:x(o),type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function W(){return(W=t(c.mark((function t(r,n,o,a,s){var u;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.subscribe(r,o,a);case 2:if(u=t.sent,_(u)){t.next=6;break}return G({context:a,method:n,result:x(u),type:"graphqlBox"}),t.abrupt("return");case 6:q(u,(function(t){var r=t._cacheMetadata,o=N({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=w(r)),G({context:a,method:n,result:x(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(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(s(t)){var n=t.type;"graphqlBox"===n?Z(t,r):"cachemap"===n&&r.cache&&k(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};
|
|
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 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 l,MUTATION as f,QUERY as h,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 j from"eventemitter3";import{v1 as O}from"uuid";import{isAsyncIterable as _,forAwaitEach as q}from"iterall";import"core-js/modules/es.regexp.exec.js";import{handleMessage as k}from"@cachemap/core-worker";var P,D,M,E=function(e){var t=/(query|mutation|subscription) ([A-Za-z]+)(\(| {)/.exec(e);return t?t[2]:""};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 I(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 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 T(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}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(c.mark((function r(){var n,o,a,u=this,l=arguments;return c.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(c.mark((function t(r){var n,a,l,f,h,b,m,d;return c.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(u,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return f=E(o[0]),h=a.now(),a.log(p,{context:I(I({},l),{},{operationName:f}),options:o[1],request:o[0],stats:{startTime:h}}),t.next=13,s.apply(u,o);case 13:if(b=t.sent,m=a.now(),d=m-h,r(b),!_(b)){t.next=19;break}return t.abrupt("return");case 19:a.log(i,{context:I(I({},l),{},{operationName:f}),options:o[1],request:o[0],result:b,stats:{duration:d,endTime:m,startTime:h}});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)}))},D=function(r,n,o){var a,s=o.value;s&&(o.value=(a=t(c.mark((function r(){var n,o,a,u=this,i=arguments;return c.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(n=i.length,o=new Array(n),a=0;a<n;a++)o[a]=i[a];return r.prev=1,r.abrupt("return",new Promise(function(){var r=t(c.mark((function t(r){var n,a,i,p,f,h;return c.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(u,o);case 5:return t.t1=t.sent,(0,t.t0)(t.t1),t.abrupt("return");case 8:return p=E(o[0]),f=a.now(),a.log(l,{context:T(T({},i),{},{operationName:p}),options:o[1],request:o[0],stats:{startTime:f}}),t.next=13,s.apply(u,o);case 13:h=t.sent,r(h);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((M=function(){function a(n){var u,p,l,f=this;r(this,a),o(this,"_cache",void 0),o(this,"_debugManager",void 0),o(this,"_eventEmitter",void 0),o(this,"_experimentalDeferStreamSupport",void 0),o(this,"_pending",new Map),o(this,"_worker",void 0),o(this,"_onMessage",(l=t(c.mark((function t(r){var n,o,a,u,p,l,h,b,d,w,x,j,O,_,q,k,P;return c.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,u=o.method,p=o.result,"graphqlBox"===o.type&&s(p)){t.next=6;break}return t.abrupt("return");case 6:if(l=p._cacheMetadata,h=e(p,["_cacheMetadata"]),b=v(R(R({},h),{},{requestID:a.requestID})),l&&(b._cacheMetadata=y(l)),"subscribe"!==u){t.next=14;break}null===(d=f._debugManager)||void 0===d||d.log(m,{context:a,result:b,stats:{endTime:null===(w=f._debugManager)||void 0===w?void 0:w.now()}}),f._eventEmitter.emit(a.requestID,b),t.next=26;break;case 14:if(!a.hasDeferOrStream){t.next=21;break}(O=f._pending.get(a.requestID))&&(_=new g(f._eventEmitter,a.requestID),O.resolve(_.getIterator())),null===(x=f._debugManager)||void 0===x||x.log(i,{context:a,result:b,stats:{endTime:null===(j=f._debugManager)||void 0===j?void 0:j.now()}}),f._eventEmitter.emit(a.requestID,b),t.next=26;break;case 21:if(P=f._pending.get(a.requestID)){t.next=24;break}return t.abrupt("return");case 24:null===(q=f._debugManager)||void 0===q||q.log(i,{context:a,result:b,stats:{endTime:null===(k=f._debugManager)||void 0===k?void 0:k.now()}}),P.resolve(b);case 26:case"end":return t.stop()}}),t)}))),function(e){return l.apply(this,arguments)}));var h=[];if(s(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=null!==(u=n.debugManager)&&void 0!==u?u:null,this._eventEmitter=new j,this._experimentalDeferStreamSupport=null!==(p=n.experimentalDeferStreamSupport)&&void 0!==p&&p,this._worker=n.worker,this._addEventListener()}var p,l,w,x,_,q;return n(a,[{key:"cache",get:function(){return this._cache}},{key:"mutate",value:(q=t(c.mark((function e(t){var r,n,o=arguments;return c.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 q.apply(this,arguments)})},{key:"query",value:(_=t(c.mark((function e(t){var r,n,o=arguments;return c.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 _.apply(this,arguments)})},{key:"request",value:(x=t(c.mark((function e(t){var r,n,o=arguments;return c.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 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 R({debugManager:this._debugManager,experimentalDeferStreamSupport:this._experimentalDeferStreamSupport,fieldTypeMap:new Map,filteredRequest:"",operation:e,operationName:"",originalRequestHash:d(t),parsedRequest:"",queryFiltered:!1,request:t,requestComplexity:null,requestDepth:null,requestID:O()},r)}},{key:"_request",value:(l=t(c.mark((function e(t,r,n){var o=this;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,new Promise((function(e){o._worker.postMessage({context:a._getMessageContext(n),method:"request",options:r,request:t,type:"graphqlBox"}),o._pending.set(n.requestID,{resolve:e})}));case 3:return e.abrupt("return",e.sent);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,null,[[0,6]])}))),function(e,t,r){return l.apply(this,arguments)})},{key:"_subscribe",value:(p=t(c.mark((function e(t,r,n){var o;return c.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this._worker.postMessage({context:a._getMessageContext(n),method:"subscribe",options:r,request:t,type:"graphqlBox"}),o=new g(this._eventEmitter,n.requestID),e.abrupt("return",o.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}}}]),a}()).prototype,"_request",[P],Object.getOwnPropertyDescriptor(M.prototype,"_request"),M.prototype),a(M.prototype,"_subscribe",[D],Object.getOwnPropertyDescriptor(M.prototype,"_subscribe"),M.prototype),M);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(c.mark((function t(r,n,o,a,s){var u,i,p,l,f;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.request(r,o,a);case 2:if(u=t.sent,_(u)){t.next=9;break}return p=(i=u)._cacheMetadata,l=e(i,["_cacheMetadata"]),f=N({},l),p&&(f._cacheMetadata=w(p)),G({context:a,method:n,result:x(f),type:"graphqlBox"}),t.abrupt("return");case 9:q(u,(function(t){var r=t._cacheMetadata,o=N({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=w(r)),G({context:a,method:n,result:x(o),type:"graphqlBox"})}));case 10:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function W(){return(W=t(c.mark((function t(r,n,o,a,s){var u;return c.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,s.subscribe(r,o,a);case 2:if(u=t.sent,_(u)){t.next=6;break}return G({context:a,method:n,result:x(u),type:"graphqlBox"}),t.abrupt("return");case 6:q(u,(function(t){var r=t._cacheMetadata,o=N({},e(t,["_cacheMetadata"]));r&&(o._cacheMetadata=w(r)),G({context:a,method:n,result:x(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(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(s(t)){var n=t.type;"graphqlBox"===n?Z(t,r):"cachemap"===n&&r.cache&&k(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
|
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/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 _experimentalDeferStreamSupport: boolean;\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 ?? null;\n this._eventEmitter = new EventEmitter();\n this._experimentalDeferStreamSupport = options.experimentalDeferStreamSupport ?? false;\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 experimentalDeferStreamSupport: this._experimentalDeferStreamSupport,\n fieldTypeMap: new Map(),\n filteredRequest: \"\",\n operation,\n operationName: \"\",\n parsedRequest: \"\",\n queryFiltered: false,\n request,\n requestComplexity: null,\n requestDepth: null,\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 const pending = this._pending.get(context.requestID);\n\n if (pending) {\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n pending.resolve(eventAsyncIterator.getIterator());\n }\n\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 this._debugManager?.log(REQUEST_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n pending.resolve(response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n return await 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 } 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","pending","_pending","get","eventAsyncIterator","EventAsyncIterator","getIterator","_this$_debugManager4","_this$_debugManager6","errors","push","TypeError","cache","worker","length","_cache","EventEmitter","_experimentalDeferStreamSupport","experimentalDeferStreamSupport","_worker","_addEventListener","this","_request","_getRequestContext","MUTATION","QUERY","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","fieldTypeMap","filteredRequest","parsedRequest","queryFiltered","requestComplexity","requestDepth","uuid","whitelistHash","hashRequest","_this2","postMessage","_getMessageContext","set","_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 _experimentalDeferStreamSupport: boolean;\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 ?? null;\n this._eventEmitter = new EventEmitter();\n this._experimentalDeferStreamSupport = options.experimentalDeferStreamSupport ?? false;\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 experimentalDeferStreamSupport: this._experimentalDeferStreamSupport,\n fieldTypeMap: new Map(),\n filteredRequest: \"\",\n operation,\n operationName: \"\",\n originalRequestHash: hashRequest(request),\n parsedRequest: \"\",\n queryFiltered: false,\n request,\n requestComplexity: null,\n requestDepth: null,\n requestID: uuid(),\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 const pending = this._pending.get(context.requestID);\n\n if (pending) {\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n pending.resolve(eventAsyncIterator.getIterator());\n }\n\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 this._debugManager?.log(REQUEST_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n pending.resolve(response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n return await 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 } 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","pending","_pending","get","eventAsyncIterator","EventAsyncIterator","getIterator","_this$_debugManager4","_this$_debugManager6","errors","push","TypeError","cache","worker","length","_cache","EventEmitter","_experimentalDeferStreamSupport","experimentalDeferStreamSupport","_worker","_addEventListener","this","_request","_getRequestContext","MUTATION","QUERY","_subscribe","SUBSCRIPTION","addEventListener","_onMessage","operation","fieldTypeMap","filteredRequest","originalRequestHash","hashRequest","parsedRequest","queryFiltered","requestComplexity","requestDepth","uuid","_this2","postMessage","_getMessageContext","set","_castArray","self","client","requestResult","dehydrateCacheMetadata","serializeErrors","forAwaitEach","subscribe","subscribeResult","handleMessage","handleRequest","handleSubscription","registerWorker","onMessage","handleCachemapMessage"],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
-----------------------------
|
|
2
2
|
Rollup File Analysis
|
|
3
3
|
-----------------------------
|
|
4
|
-
bundle size: 32.
|
|
5
|
-
original size: 14.
|
|
4
|
+
bundle size: 32.23 KB
|
|
5
|
+
original size: 14.626 KB
|
|
6
6
|
code reduction: 0 %
|
|
7
7
|
module count: 8
|
|
8
8
|
|
|
9
9
|
███████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
10
10
|
file: /src/main/index.ts
|
|
11
|
-
bundle space: 47.
|
|
12
|
-
rendered size: 15.
|
|
13
|
-
original size: 6.
|
|
11
|
+
bundle space: 47.21 %
|
|
12
|
+
rendered size: 15.217 KB
|
|
13
|
+
original size: 6.368 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: 19.
|
|
20
|
+
bundle space: 19.75 %
|
|
21
21
|
rendered size: 6.366 KB
|
|
22
22
|
original size: 3.377 KB
|
|
23
23
|
code reduction: 0 %
|
|
@@ -66,7 +66,7 @@ dependents: 2
|
|
|
66
66
|
file: /src/defs/index.ts
|
|
67
67
|
bundle space: 0 %
|
|
68
68
|
rendered size: 0 Byte
|
|
69
|
-
original size: 1.
|
|
69
|
+
original size: 1.381 KB
|
|
70
70
|
code reduction: 100 %
|
|
71
71
|
dependents: 1
|
|
72
72
|
- /src/index.ts
|
package/lib/main/main/index.js
CHANGED
|
@@ -192,13 +192,13 @@ let WorkerClient = (_dec = (0, _logRequest.default)(), _dec2 = (0, _logSubscript
|
|
|
192
192
|
filteredRequest: "",
|
|
193
193
|
operation,
|
|
194
194
|
operationName: "",
|
|
195
|
+
originalRequestHash: (0, _helpers.hashRequest)(request),
|
|
195
196
|
parsedRequest: "",
|
|
196
197
|
queryFiltered: false,
|
|
197
198
|
request,
|
|
198
199
|
requestComplexity: null,
|
|
199
200
|
requestDepth: null,
|
|
200
201
|
requestID: (0, _uuid.v1)(),
|
|
201
|
-
whitelistHash: (0, _helpers.hashRequest)(request),
|
|
202
202
|
...context
|
|
203
203
|
};
|
|
204
204
|
}
|
|
@@ -1 +1 @@
|
|
|
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","pending","_pending","get","eventAsyncIterator","EventAsyncIterator","resolve","getIterator","REQUEST_RESOLVED","errors","push","TypeError","cache","worker","length","_cache","debugManager","EventEmitter","_experimentalDeferStreamSupport","experimentalDeferStreamSupport","_worker","_addEventListener","mutate","request","_request","_getRequestContext","MUTATION","query","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","filteredRequest","operationName","parsedRequest","queryFiltered","requestComplexity","requestDepth","whitelistHash","Promise","postMessage","REQUEST","set","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 _experimentalDeferStreamSupport: boolean;\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 ?? null;\n this._eventEmitter = new EventEmitter();\n this._experimentalDeferStreamSupport = options.experimentalDeferStreamSupport ?? false;\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 experimentalDeferStreamSupport: this._experimentalDeferStreamSupport,\n fieldTypeMap: new Map(),\n filteredRequest: \"\",\n operation,\n operationName: \"\",\n parsedRequest: \"\",\n queryFiltered: false,\n request,\n requestComplexity: null,\n requestDepth: null,\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 const pending = this._pending.get(context.requestID);\n\n if (pending) {\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n pending.resolve(eventAsyncIterator.getIterator());\n }\n\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 this._debugManager?.log(REQUEST_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n pending.resolve(response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n return await 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 } 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
|
+
{"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","pending","_pending","get","eventAsyncIterator","EventAsyncIterator","resolve","getIterator","REQUEST_RESOLVED","errors","push","TypeError","cache","worker","length","_cache","debugManager","EventEmitter","_experimentalDeferStreamSupport","experimentalDeferStreamSupport","_worker","_addEventListener","mutate","request","_request","_getRequestContext","MUTATION","query","QUERY","subscribe","_subscribe","SUBSCRIPTION","addEventListener","MESSAGE","_onMessage","operation","fieldTypeMap","filteredRequest","operationName","originalRequestHash","parsedRequest","queryFiltered","requestComplexity","requestDepth","Promise","postMessage","REQUEST","set","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 _experimentalDeferStreamSupport: boolean;\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 ?? null;\n this._eventEmitter = new EventEmitter();\n this._experimentalDeferStreamSupport = options.experimentalDeferStreamSupport ?? false;\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 experimentalDeferStreamSupport: this._experimentalDeferStreamSupport,\n fieldTypeMap: new Map(),\n filteredRequest: \"\",\n operation,\n operationName: \"\",\n originalRequestHash: hashRequest(request),\n parsedRequest: \"\",\n queryFiltered: false,\n request,\n requestComplexity: null,\n requestDepth: null,\n requestID: uuid(),\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 const pending = this._pending.get(context.requestID);\n\n if (pending) {\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n pending.resolve(eventAsyncIterator.getIterator());\n }\n\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 this._debugManager?.log(REQUEST_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n pending.resolve(response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n return await 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 } 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":["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.
|
|
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.mjs"}
|
|
@@ -1 +1 @@
|
|
|
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.
|
|
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.mjs"}
|
|
@@ -1 +1 @@
|
|
|
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.
|
|
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.mjs"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"index.
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"index.mjs"}
|
|
@@ -1 +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.
|
|
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.mjs"}
|
|
@@ -1 +1 @@
|
|
|
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.
|
|
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.mjs"}
|
|
@@ -179,13 +179,13 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logSubscription(), (_class = cl
|
|
|
179
179
|
filteredRequest: "",
|
|
180
180
|
operation,
|
|
181
181
|
operationName: "",
|
|
182
|
+
originalRequestHash: hashRequest(request),
|
|
182
183
|
parsedRequest: "",
|
|
183
184
|
queryFiltered: false,
|
|
184
185
|
request,
|
|
185
186
|
requestComplexity: null,
|
|
186
187
|
requestDepth: null,
|
|
187
188
|
requestID: uuid(),
|
|
188
|
-
whitelistHash: hashRequest(request),
|
|
189
189
|
...context
|
|
190
190
|
};
|
|
191
191
|
}
|
|
@@ -233,4 +233,4 @@ let WorkerClient = (_dec = logRequest(), _dec2 = logSubscription(), (_class = cl
|
|
|
233
233
|
|
|
234
234
|
}, (_applyDecoratedDescriptor(_class.prototype, "_request", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "_request"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "_subscribe", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "_subscribe"), _class.prototype)), _class));
|
|
235
235
|
export { WorkerClient as default };
|
|
236
|
-
//# sourceMappingURL=index.
|
|
236
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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","eventAsyncIterator","resolve","getIterator","errors","push","TypeError","cache","worker","length","_cache","debugManager","_experimentalDeferStreamSupport","experimentalDeferStreamSupport","_worker","_addEventListener","mutate","request","_request","_getRequestContext","query","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","filteredRequest","operationName","originalRequestHash","parsedRequest","queryFiltered","requestComplexity","requestDepth","Promise","postMessage","set","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 _experimentalDeferStreamSupport: boolean;\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 ?? null;\n this._eventEmitter = new EventEmitter();\n this._experimentalDeferStreamSupport = options.experimentalDeferStreamSupport ?? false;\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 experimentalDeferStreamSupport: this._experimentalDeferStreamSupport,\n fieldTypeMap: new Map(),\n filteredRequest: \"\",\n operation,\n operationName: \"\",\n originalRequestHash: hashRequest(request),\n parsedRequest: \"\",\n queryFiltered: false,\n request,\n requestComplexity: null,\n requestDepth: null,\n requestID: uuid(),\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 const pending = this._pending.get(context.requestID);\n\n if (pending) {\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n pending.resolve(eventAsyncIterator.getIterator());\n }\n\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 this._debugManager?.log(REQUEST_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n pending.resolve(response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n return await 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 } 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.mjs"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/register-worker/index.ts"],"names":["handleMessage","handleCachemapMessage","dehydrateCacheMetadata","serializeErrors","forAwaitEach","isAsyncIterable","CACHEMAP","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","addEventListener","postMessage","self","handleRequest","request","method","options","context","client","requestResult","_cacheMetadata","otherProps","result","type","handleSubscription","subscribeResult","subscribe","data","registerWorker","onMessage","cache"],"mappings":"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","sourcesContent":["import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata, serializeErrors } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const requestResult = await client.request(request, options, context);\n\n if (!isAsyncIterable(requestResult)) {\n const { _cacheMetadata, ...otherProps } = requestResult as MaybeRequestResult;\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(requestResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nasync function handleSubscription(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const subscribeResult = await client.subscribe(request, options, context);\n\n if (!isAsyncIterable(subscribeResult)) {\n postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"file":"index.
|
|
1
|
+
{"version":3,"sources":["../../../src/register-worker/index.ts"],"names":["handleMessage","handleCachemapMessage","dehydrateCacheMetadata","serializeErrors","forAwaitEach","isAsyncIterable","CACHEMAP","GRAPHQL_BOX","MESSAGE","REQUEST","SUBSCRIBE","addEventListener","postMessage","self","handleRequest","request","method","options","context","client","requestResult","_cacheMetadata","otherProps","result","type","handleSubscription","subscribeResult","subscribe","data","registerWorker","onMessage","cache"],"mappings":"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","sourcesContent":["import { handleMessage as handleCachemapMessage } from \"@cachemap/core-worker\";\nimport Client from \"@graphql-box/client\";\nimport { MaybeRequestResult, MaybeRequestResultWithDehydratedCacheMetadata, RequestOptions } from \"@graphql-box/core\";\nimport { dehydrateCacheMetadata, serializeErrors } from \"@graphql-box/helpers\";\nimport { forAwaitEach, isAsyncIterable } from \"iterall\";\nimport { isPlainObject } from \"lodash\";\nimport { CACHEMAP, GRAPHQL_BOX, MESSAGE, REQUEST, SUBSCRIBE } from \"../consts\";\nimport { MessageContext, MessageRequestPayload, MethodNames, RegisterWorkerOptions } from \"../defs\";\n\nconst { addEventListener, postMessage } = (self as unknown) as DedicatedWorkerGlobalScope;\n\nasync function handleRequest(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const requestResult = await client.request(request, options, context);\n\n if (!isAsyncIterable(requestResult)) {\n const { _cacheMetadata, ...otherProps } = requestResult as MaybeRequestResult;\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(requestResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nasync function handleSubscription(\n request: string,\n method: MethodNames,\n options: RequestOptions,\n context: MessageContext,\n client: Client,\n): Promise<void> {\n const subscribeResult = await client.subscribe(request, options, context);\n\n if (!isAsyncIterable(subscribeResult)) {\n postMessage({ context, method, result: serializeErrors(subscribeResult as MaybeRequestResult), type: GRAPHQL_BOX });\n return;\n }\n\n forAwaitEach(subscribeResult, ({ _cacheMetadata, ...otherProps }: MaybeRequestResult) => {\n const result: MaybeRequestResultWithDehydratedCacheMetadata = { ...otherProps };\n\n if (_cacheMetadata) {\n result._cacheMetadata = dehydrateCacheMetadata(_cacheMetadata);\n }\n\n postMessage({ context, method, result: serializeErrors(result), type: GRAPHQL_BOX });\n });\n}\n\nexport function handleMessage(data: MessageRequestPayload, client: Client): void {\n const { context, method, options, request } = data as MessageRequestPayload;\n\n if (method === REQUEST) {\n handleRequest(request, method, options, context, client);\n } else if (method === SUBSCRIBE) {\n handleSubscription(request, method, options, context, client);\n }\n}\n\nexport default async function registerWorker({ client }: RegisterWorkerOptions): Promise<void> {\n function onMessage({ data }: MessageEvent): void {\n if (!isPlainObject(data)) {\n return;\n }\n\n const { type } = data as MessageRequestPayload;\n\n if (type === GRAPHQL_BOX) {\n handleMessage(data, client);\n } else if (type === CACHEMAP && client.cache) {\n handleCachemapMessage(data, client.cache);\n }\n }\n\n addEventListener(MESSAGE, onMessage);\n}\n"],"file":"index.mjs"}
|
|
@@ -11,7 +11,8 @@ export interface UserOptions {
|
|
|
11
11
|
*/
|
|
12
12
|
debugManager?: DebugManagerDef;
|
|
13
13
|
/**
|
|
14
|
-
* Enable support for defer and stream directives.
|
|
14
|
+
* Enable support for defer and stream directives. Based on version
|
|
15
|
+
* of spec in 16.1.0-experimental-stream-defer.6
|
|
15
16
|
*/
|
|
16
17
|
experimentalDeferStreamSupport?: boolean;
|
|
17
18
|
/**
|
|
@@ -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,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3G,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAE/B
|
|
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,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE3G,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,cAAc,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAE/B;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;IAEzC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD,oBAAY,eAAe,GAAG,CAC5B,KAAK,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,kBAAkB,GAAG,SAAS,CAAC,KAC9E,IAAI,CAAC;AAEV,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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphql-box/worker-client",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.6",
|
|
4
4
|
"description": "The GraphQL Box web worker client module.",
|
|
5
5
|
"author": "Dylan Aubrey <dylanaubrey@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"main": "lib/main/index.js",
|
|
20
|
-
"module": "lib/module/index.
|
|
20
|
+
"module": "lib/module/index.mjs",
|
|
21
21
|
"browser": "lib/browser/index.js",
|
|
22
22
|
"types": "lib/types/index.d.ts",
|
|
23
23
|
"keywords": [
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"compile-watch:types": "yarn run compile:types --watch",
|
|
35
35
|
"compile:browser": "cross-env BABEL_ENV=browser rollup -c ../../rollup.config.js",
|
|
36
36
|
"compile:main": "cross-env BABEL_ENV=main babel ./src --out-dir ./lib/main --extensions \".ts\" --source-maps --config-file ../../babel.config.js",
|
|
37
|
-
"compile:module": "cross-env BABEL_ENV=module babel ./src --out-dir ./lib/module --extensions \".ts\" --source-maps --config-file ../../babel.config.js",
|
|
37
|
+
"compile:module": "cross-env BABEL_ENV=module babel ./src --out-dir ./lib/module --extensions \".ts\" --out-file-extension \".mjs\" --source-maps --config-file ../../babel.config.js",
|
|
38
38
|
"compile:types": "tsc --build",
|
|
39
39
|
"docs": "typedoc --includes ./src/main --out ./docs --options ../../typedoc.js",
|
|
40
40
|
"watch": "cross-env BABEL_ENV=browser rollup -c ../../rollup.config.js -w"
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"lodash": "< 5"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@cachemap/constants": "4.0.
|
|
51
|
-
"@cachemap/core": "4.0.
|
|
52
|
-
"@cachemap/core-worker": "4.0.
|
|
50
|
+
"@cachemap/constants": "^4.0.2",
|
|
51
|
+
"@cachemap/core": "^4.0.4",
|
|
52
|
+
"@cachemap/core-worker": "^4.0.3",
|
|
53
53
|
"eventemitter3": "^4.0.0",
|
|
54
54
|
"iterall": "^1.3.0",
|
|
55
55
|
"uuid": "^7.0.1"
|
package/src/defs/index.ts
CHANGED
|
@@ -14,7 +14,8 @@ export interface UserOptions {
|
|
|
14
14
|
debugManager?: DebugManagerDef;
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Enable support for defer and stream directives.
|
|
17
|
+
* Enable support for defer and stream directives. Based on version
|
|
18
|
+
* of spec in 16.1.0-experimental-stream-defer.6
|
|
18
19
|
*/
|
|
19
20
|
experimentalDeferStreamSupport?: boolean;
|
|
20
21
|
|
package/src/main/index.ts
CHANGED
|
@@ -96,13 +96,13 @@ export default class WorkerClient {
|
|
|
96
96
|
filteredRequest: "",
|
|
97
97
|
operation,
|
|
98
98
|
operationName: "",
|
|
99
|
+
originalRequestHash: hashRequest(request),
|
|
99
100
|
parsedRequest: "",
|
|
100
101
|
queryFiltered: false,
|
|
101
102
|
request,
|
|
102
103
|
requestComplexity: null,
|
|
103
104
|
requestDepth: null,
|
|
104
105
|
requestID: uuid(),
|
|
105
|
-
whitelistHash: hashRequest(request),
|
|
106
106
|
...context,
|
|
107
107
|
};
|
|
108
108
|
}
|
package/lib/module/defs/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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","eventAsyncIterator","resolve","getIterator","errors","push","TypeError","cache","worker","length","_cache","debugManager","_experimentalDeferStreamSupport","experimentalDeferStreamSupport","_worker","_addEventListener","mutate","request","_request","_getRequestContext","query","subscribe","_subscribe","addEventListener","_onMessage","operation","fieldTypeMap","filteredRequest","operationName","parsedRequest","queryFiltered","requestComplexity","requestDepth","whitelistHash","Promise","postMessage","set","error"],"mappings":";;;;;;;;AACA,SAEEA,QAFF,EAKEC,KALF,EAMEC,gBANF,EASEC,YATF,EAUEC,qBAVF,QAYO,mBAZP;AAaA,SAASC,kBAAT,EAA6BC,iBAA7B,EAAgDC,WAAhD,EAA6DC,sBAA7D,QAA2F,sBAA3F;AACA,OAAOC,YAAP,MAAyB,eAAzB;AAEA,SAASC,EAAE,IAAIC,IAAf,QAA2B,MAA3B;AACA,SAASC,WAAT,EAAsBC,OAAtB,EAA+BC,OAA/B,EAAwCC,SAAxC,QAAyD,WAAzD;AACA,OAAOC,UAAP,MAAuB,sBAAvB;AACA,OAAOC,eAAP,MAA4B,2BAA5B;IAGqBC,Y,WAgJlBF,UAAU,E,UAmBVC,eAAe,E,YAnKH,MAAMC,YAAN,CAAmB;AACC,SAAlBC,kBAAkB,CAAC;AAAEC,IAAAA,gBAAgB,GAAG,KAArB;AAA4BC,IAAAA;AAA5B,GAAD,EAA0E;AACzG,WAAO;AAAED,MAAAA,gBAAF;AAAoBC,MAAAA;AAApB,KAAP;AACD;;AASDC,EAAAA,WAAW,CAACC,OAAD,EAAuB;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,sCAHC,IAAIC,GAAJ,EAGD;;AAAA;;AAAA,wCA0Eb,OAAO;AAAEC,MAAAA;AAAF,KAAP,KAAiD;AACpE,UAAI,CAAC,eAAcA,IAAd,CAAL,EAA0B;AACxB;AACD;;AAED,YAAM;AAAEC,QAAAA,OAAF;AAAWC,QAAAA,MAAX;AAAmBC,QAAAA,MAAnB;AAA2BC,QAAAA;AAA3B,UAAoCJ,IAA1C;;AAEA,UAAII,IAAI,KAAKjB,WAAT,IAAwB,CAAC,eAAcgB,MAAd,CAA7B,EAAoD;AAClD;AACD;;AAED,YAAM;AAAEE,QAAAA,cAAF;AAAkB,WAAGC;AAArB,UAAoCH,MAA1C;AACA,YAAMI,QAA4B,GAAG1B,iBAAiB,CAAC,EAAE,GAAGyB,UAAL;AAAiBV,QAAAA,SAAS,EAAEK,OAAO,CAACL;AAApC,OAAD,CAAtD;;AAEA,UAAIS,cAAJ,EAAoB;AAClBE,QAAAA,QAAQ,CAACF,cAAT,GAA0BtB,sBAAsB,CAACsB,cAAD,CAAhD;AACD;;AAED,UAAIH,MAAM,KAAKZ,SAAf,EAA0B;AAAA;;AACxB,oCAAKkB,aAAL,4EAAoBC,GAApB,CAAwB9B,qBAAxB,EAA+C;AAC7CsB,UAAAA,OAD6C;AAE7CE,UAAAA,MAAM,EAAEI,QAFqC;AAG7CG,UAAAA,KAAK,EAAE;AAAEC,YAAAA,OAAO,0BAAE,KAAKH,aAAP,yDAAE,qBAAoBI,GAApB;AAAX;AAHsC,SAA/C;;AAMA,aAAKC,aAAL,CAAmBC,IAAnB,CAAwBb,OAAO,CAACL,SAAhC,EAA2CW,QAA3C;AACD,OARD,MAQO,IAAIN,OAAO,CAACN,gBAAZ,EAA8B;AAAA;;AACnC,cAAMoB,OAAO,GAAG,KAAKC,QAAL,CAAcC,GAAd,CAAkBhB,OAAO,CAACL,SAA1B,CAAhB;;AAEA,YAAImB,OAAJ,EAAa;AACX,gBAAMG,kBAAkB,GAAG,IAAItC,kBAAJ,CAA2C,KAAKiC,aAAhD,EAA+DZ,OAAO,CAACL,SAAvE,CAA3B;AACAmB,UAAAA,OAAO,CAACI,OAAR,CAAgBD,kBAAkB,CAACE,WAAnB,EAAhB;AACD;;AAED,qCAAKZ,aAAL,8EAAoBC,GAApB,CAAwBhC,gBAAxB,EAA0C;AACxCwB,UAAAA,OADwC;AAExCE,UAAAA,MAAM,EAAEI,QAFgC;AAGxCG,UAAAA,KAAK,EAAE;AAAEC,YAAAA,OAAO,0BAAE,KAAKH,aAAP,yDAAE,qBAAoBI,GAApB;AAAX;AAHiC,SAA1C;;AAMA,aAAKC,aAAL,CAAmBC,IAAnB,CAAwBb,OAAO,CAACL,SAAhC,EAA2CW,QAA3C;AACD,OAfM,MAeA;AAAA;;AACL,cAAMQ,OAAO,GAAG,KAAKC,QAAL,CAAcC,GAAd,CAAkBhB,OAAO,CAACL,SAA1B,CAAhB;;AAEA,YAAI,CAACmB,OAAL,EAAc;AACZ;AACD;;AAED,qCAAKP,aAAL,8EAAoBC,GAApB,CAAwBhC,gBAAxB,EAA0C;AACxCwB,UAAAA,OADwC;AAExCE,UAAAA,MAAM,EAAEI,QAFgC;AAGxCG,UAAAA,KAAK,EAAE;AAAEC,YAAAA,OAAO,0BAAE,KAAKH,aAAP,yDAAE,qBAAoBI,GAApB;AAAX;AAHiC,SAA1C;AAMAG,QAAAA,OAAO,CAACI,OAAR,CAAgBZ,QAAhB;AACD;AACF,KAlIiC;;AAChC,UAAMc,MAAmB,GAAG,EAA5B;;AAEA,QAAI,CAAC,eAAcvB,OAAd,CAAL,EAA6B;AAC3BuB,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,4DAAd,CAAZ;AACD;;AAED,QAAI,CAACzB,OAAO,CAAC0B,KAAb,EAAoB;AAClBH,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,6CAAd,CAAZ;AACD;;AAED,QAAI,CAACzB,OAAO,CAAC2B,MAAb,EAAqB;AACnBJ,MAAAA,MAAM,CAACC,IAAP,CAAY,IAAIC,SAAJ,CAAc,8CAAd,CAAZ;AACD;;AAED,QAAIF,MAAM,CAACK,MAAX,EAAmB;AACjB,YAAML,MAAN;AACD;;AAED,SAAKM,MAAL,GAAc7B,OAAO,CAAC0B,KAAtB;AACA,SAAKhB,aAAL,4BAAqBV,OAAO,CAAC8B,YAA7B,yEAA6C,IAA7C;AACA,SAAKf,aAAL,GAAqB,IAAI7B,YAAJ,EAArB;AACA,SAAK6C,+BAAL,4BAAuC/B,OAAO,CAACgC,8BAA/C,yEAAiF,KAAjF;AACA,SAAKC,OAAL,GAAejC,OAAO,CAAC2B,MAAvB;;AACA,SAAKO,iBAAL;AACD;;AAEQ,MAALR,KAAK,GAAmB;AAC1B,WAAO,KAAKG,MAAZ;AACD;;AAEkB,QAANM,MAAM,CAACC,OAAD,EAAkBpC,OAAuB,GAAG,EAA5C,EAAgDG,OAA4B,GAAG,EAA/E,EAAmF;AACpG,WAAO,KAAKkC,QAAL,CAAcD,OAAd,EAAuBpC,OAAvB,EAAgC,KAAKsC,kBAAL,CAAwB7D,QAAxB,EAAkC2D,OAAlC,EAA2CjC,OAA3C,CAAhC,CAAP;AACD;;AAEiB,QAALoC,KAAK,CAACH,OAAD,EAAkBpC,OAAuB,GAAG,EAA5C,EAAgDG,OAA4B,GAAG,EAA/E,EAAmF;AACnG,WAAO,KAAKkC,QAAL,CAAcD,OAAd,EAAuBpC,OAAvB,EAAgC,KAAKsC,kBAAL,CAAwB5D,KAAxB,EAA+B0D,OAA/B,EAAwCjC,OAAxC,CAAhC,CAAP;AACD;;AAEmB,QAAPiC,OAAO,CAACA,OAAD,EAAkBpC,OAAuB,GAAG,EAA5C,EAAgDG,OAA4B,GAAG,EAA/E,EAAmF;AACrG,WAAO,KAAKkC,QAAL,CAAcD,OAAd,EAAuBpC,OAAvB,EAAgC,KAAKsC,kBAAL,CAAwB5D,KAAxB,EAA+B0D,OAA/B,EAAwCjC,OAAxC,CAAhC,CAAP;AACD;;AAEqB,QAATqC,SAAS,CAACJ,OAAD,EAAkBpC,OAAuB,GAAG,EAA5C,EAAgD;AACpE,WAAO,KAAKyC,UAAL,CAAgBL,OAAhB,EAAyBpC,OAAzB,EAAkC,KAAKsC,kBAAL,CAAwB1D,YAAxB,EAAsCwD,OAAtC,CAAlC,CAAP;AACD;;AAEOF,EAAAA,iBAAiB,GAAS;AAChC,SAAKD,OAAL,CAAaS,gBAAb,CAA8BpD,OAA9B,EAAuC,KAAKqD,UAA5C;AACD;;AAEOL,EAAAA,kBAAkB,CACxBM,SADwB,EAExBR,OAFwB,EAGxBjC,OAA4B,GAAG,EAHP,EAIR;AAChB,WAAO;AACL2B,MAAAA,YAAY,EAAE,KAAKpB,aADd;AAELsB,MAAAA,8BAA8B,EAAE,KAAKD,+BAFhC;AAGLc,MAAAA,YAAY,EAAE,IAAI5C,GAAJ,EAHT;AAIL6C,MAAAA,eAAe,EAAE,EAJZ;AAKLF,MAAAA,SALK;AAMLG,MAAAA,aAAa,EAAE,EANV;AAOLC,MAAAA,aAAa,EAAE,EAPV;AAQLC,MAAAA,aAAa,EAAE,KARV;AASLb,MAAAA,OATK;AAULc,MAAAA,iBAAiB,EAAE,IAVd;AAWLC,MAAAA,YAAY,EAAE,IAXT;AAYLrD,MAAAA,SAAS,EAAEV,IAAI,EAZV;AAaLgE,MAAAA,aAAa,EAAEpE,WAAW,CAACoD,OAAD,CAbrB;AAcL,SAAGjC;AAdE,KAAP;AAgBD;;AA6DqB,QAARkC,QAAQ,CAACD,OAAD,EAAkBpC,OAAlB,EAA2CG,OAA3C,EAAoE;AACxF,QAAI;AACF,aAAO,MAAM,IAAIkD,OAAJ,CAAahC,OAAD,IAA8B;AACrD,aAAKY,OAAL,CAAaqB,WAAb,CAAyB;AACvBnD,UAAAA,OAAO,EAAER,YAAY,CAACC,kBAAb,CAAgCO,OAAhC,CADc;AAEvBC,UAAAA,MAAM,EAAEb,OAFe;AAGvBS,UAAAA,OAHuB;AAIvBoC,UAAAA,OAJuB;AAKvB9B,UAAAA,IAAI,EAAEjB;AALiB,SAAzB;;AAQA,aAAK6B,QAAL,CAAcqC,GAAd,CAAkBpD,OAAO,CAACL,SAA1B,EAAqC;AAAEuB,UAAAA;AAAF,SAArC;AACD,OAVY,CAAb;AAWD,KAZD,CAYE,OAAOmC,KAAP,EAAc;AACd,aAAO;AAAEjC,QAAAA,MAAM,EAAE,WAAUiC,KAAV;AAAV,OAAP;AACD;AACF;;AAGuB,QAAVf,UAAU,CAACL,OAAD,EAAkBpC,OAAlB,EAA2CG,OAA3C,EAAoE;AAC1F,QAAI;AACF,WAAK8B,OAAL,CAAaqB,WAAb,CAAyB;AACvBnD,QAAAA,OAAO,EAAER,YAAY,CAACC,kBAAb,CAAgCO,OAAhC,CADc;AAEvBC,QAAAA,MAAM,EAAEZ,SAFe;AAGvBQ,QAAAA,OAHuB;AAIvBoC,QAAAA,OAJuB;AAKvB9B,QAAAA,IAAI,EAAEjB;AALiB,OAAzB;;AAQA,YAAM+B,kBAAkB,GAAG,IAAItC,kBAAJ,CAA2C,KAAKiC,aAAhD,EAA+DZ,OAAO,CAACL,SAAvE,CAA3B;AACA,aAAOsB,kBAAkB,CAACE,WAAnB,EAAP;AACD,KAXD,CAWE,OAAOkC,KAAP,EAAc;AACd,aAAO;AAAEjC,QAAAA,MAAM,EAAE,WAAUiC,KAAV;AAAV,OAAP;AACD;AACF;;AAnL+B,C;SAAb7D,Y","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 _experimentalDeferStreamSupport: boolean;\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 ?? null;\n this._eventEmitter = new EventEmitter();\n this._experimentalDeferStreamSupport = options.experimentalDeferStreamSupport ?? false;\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 experimentalDeferStreamSupport: this._experimentalDeferStreamSupport,\n fieldTypeMap: new Map(),\n filteredRequest: \"\",\n operation,\n operationName: \"\",\n parsedRequest: \"\",\n queryFiltered: false,\n request,\n requestComplexity: null,\n requestDepth: null,\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 const pending = this._pending.get(context.requestID);\n\n if (pending) {\n const eventAsyncIterator = new EventAsyncIterator<MaybeRequestResult>(this._eventEmitter, context.requestID);\n pending.resolve(eventAsyncIterator.getIterator());\n }\n\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 this._debugManager?.log(REQUEST_RESOLVED, {\n context,\n result: response,\n stats: { endTime: this._debugManager?.now() },\n });\n\n pending.resolve(response);\n }\n };\n\n @logRequest()\n private async _request(request: string, options: RequestOptions, context: RequestContext) {\n try {\n return await 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 } 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"}
|