UNPKG

altair-static

Version:

Static package for altair graphql client

6 lines (5 loc) 8.55 kB
"use strict"; !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fe215e4b-002f-549f-b997-e06e205bd393")}catch(e){}}(); (self.webpackChunkaltair=self.webpackChunkaltair||[]).push([[241],{7241:(pe,J,I)=>{I.r(J),I.d(J,{GraphQLWsRequestHandler:()=>ae});var g=I(35121),Z=I(57586);const T=Object.prototype.hasOwnProperty;function x(e){return"object"==typeof e&&null!==e}function N(e,n){return T.call(e,n)}function W(e,n){return T.call(e,n)&&x(e[n])}function S(e,n){return T.call(e,n)&&"string"==typeof e[n]}function $(e,n){return e.length<124?e:n}var p=function(e){return e[e.InternalServerError=4500]="InternalServerError",e[e.InternalClientError=4005]="InternalClientError",e[e.BadRequest=4400]="BadRequest",e[e.BadResponse=4004]="BadResponse",e[e.Unauthorized=4401]="Unauthorized",e[e.Forbidden=4403]="Forbidden",e[e.SubprotocolNotAcceptable=4406]="SubprotocolNotAcceptable",e[e.ConnectionInitialisationTimeout=4408]="ConnectionInitialisationTimeout",e[e.ConnectionAcknowledgementTimeout=4504]="ConnectionAcknowledgementTimeout",e[e.SubscriberAlreadyExists=4409]="SubscriberAlreadyExists",e[e.TooManyInitialisationRequests=4429]="TooManyInitialisationRequests",e}(p||{}),c=function(e){return e.ConnectionInit="connection_init",e.ConnectionAck="connection_ack",e.Ping="ping",e.Pong="pong",e.Subscribe="subscribe",e.Next="next",e.Error="error",e.Complete="complete",e}(c||{});function B(e){if(x(e)){if(!S(e,"type"))return!1;switch(e.type){case c.ConnectionInit:case c.ConnectionAck:case c.Ping:case c.Pong:return!N(e,"payload")||void 0===e.payload||x(e.payload);case c.Subscribe:return S(e,"id")&&W(e,"payload")&&(!N(e.payload,"operationName")||null==e.payload.operationName||"string"==typeof e.payload.operationName)&&S(e.payload,"query")&&(!N(e.payload,"variables")||null==e.payload.variables||W(e.payload,"variables"))&&(!N(e.payload,"extensions")||null==e.payload.extensions||W(e.payload,"extensions"));case c.Next:return S(e,"id")&&W(e,"payload");case c.Error:return S(e,"id")&&function _(e){return Array.isArray(e)&&e.length>0&&e.every(n=>"message"in n)}(e.payload);case c.Complete:return S(e,"id");default:return!1}}return!1}function O(e,n){if(!B(e))throw new Error("Cannot stringify invalid message");return JSON.stringify(e,n)}function L(e){return x(e)&&"code"in e&&"reason"in e}var ie=I(49601);class ae{handle(n){return new Z.c(y=>{if(this.client=function te(e){const{url:n,connectionParams:y,lazy:F=!0,onNonLazyError:w=console.error,lazyCloseTimeout:M=0,keepAlive:v=0,disablePong:se,connectionAckWaitTimeout:D=0,retryAttempts:C=5,retryWait:ce=function(){var t=(0,g.A)(function*(s){let o=1e3;for(let a=0;a<s;a++)o*=2;yield new Promise(a=>setTimeout(a,o+Math.floor(2700*Math.random()+300)))});return function l(s){return t.apply(this,arguments)}}(),shouldRetry:le=L,isFatalConnectionProblem:q,on:r,webSocketImpl:Q,generateID:ue=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,l=>{const s=16*Math.random()|0;return("x"==l?s:3&s|8).toString(16)})},jsonMessageReplacer:H,jsonMessageReviver:de}=e;let A;if(Q){if(!function oe(e){return"function"==typeof e&&"constructor"in e&&"CLOSED"in e&&"CLOSING"in e&&"CONNECTING"in e&&"OPEN"in e}(Q))throw new Error("Invalid WebSocket implementation provided");A=Q}else typeof WebSocket<"u"?A=WebSocket:typeof global<"u"?A=global.WebSocket||global.MozWebSocket:typeof window<"u"&&(A=window.WebSocket||window.MozWebSocket);if(!A)throw new Error("WebSocket implementation missing; on Node you can `import WebSocket from 'ws';` and pass `webSocketImpl: WebSocket` to `createClient`");const P=A,f=(()=>{const t=(()=>{const s={};return{on:(o,a)=>(s[o]=a,()=>{delete s[o]}),emit(o){var a;"id"in o&&(null===(a=s[o.id])||void 0===a||a.call(s,o))}}})(),l={connecting:r?.connecting?[r.connecting]:[],opened:r?.opened?[r.opened]:[],connected:r?.connected?[r.connected]:[],ping:r?.ping?[r.ping]:[],pong:r?.pong?[r.pong]:[],message:r?.message?[t.emit,r.message]:[t.emit],closed:r?.closed?[r.closed]:[],error:r?.error?[r.error]:[]};return{onMessage:t.on,on(s,o){const a=l[s];return a.push(o),()=>{a.splice(a.indexOf(o),1)}},emit(s,...o){for(const a of[...l[s]])a(...o)}}})();function K(t){const l=[f.on("error",s=>{l.forEach(o=>o()),t(s)}),f.on("closed",s=>{l.forEach(o=>o()),t(s)})]}let m,h=0,U=!1,G=0,V=!1;function X(){return j.apply(this,arguments)}function j(){return j=(0,g.A)(function*(){const[t,l]=yield m??(m=new Promise((a,b)=>(0,g.A)(function*(){if(U){if(yield ce(G),!h)return m=void 0,b({code:1e3,reason:"All Subscriptions Gone"});G++}f.emit("connecting");const i=new P("function"==typeof n?yield n():n,"graphql-transport-ws");let E,R;function z(){isFinite(v)&&v>0&&(clearTimeout(R),R=setTimeout(()=>{i.readyState===P.OPEN&&(i.send(O({type:c.Ping})),f.emit("ping",!1,void 0))},v))}K(u=>{m=void 0,clearTimeout(E),clearTimeout(R),b(u),L(u)&&4499===u.code&&(i.close(4499,"Terminated"),i.onerror=null,i.onclose=null)}),i.onerror=u=>f.emit("error",u),i.onclose=u=>f.emit("closed",u),i.onopen=(0,g.A)(function*(){try{f.emit("opened",i);const u="function"==typeof y?yield y():y;if(i.readyState!==P.OPEN)return;i.send(O(u?{type:c.ConnectionInit,payload:u}:{type:c.ConnectionInit},H)),isFinite(D)&&D>0&&(E=setTimeout(()=>{i.close(p.ConnectionAcknowledgementTimeout,"Connection acknowledgement timeout")},D)),z()}catch(u){f.emit("error",u),i.close(p.InternalClientError,$(u instanceof Error?u.message:new Error(u).message,"Internal client error"))}});let k=!1;i.onmessage=({data:u})=>{try{const d=function ne(e,n){if(B(e))return e;if("string"!=typeof e)throw new Error("Message not parsable");const y=JSON.parse(e,n);if(!B(y))throw new Error("Invalid message");return y}(u,de);if(f.emit("message",d),"ping"===d.type||"pong"===d.type)return f.emit(d.type,!0,d.payload),void("pong"===d.type?z():se||(i.send(O(d.payload?{type:c.Pong,payload:d.payload}:{type:c.Pong})),f.emit("pong",!1,d.payload)));if(k)return;if(d.type!==c.ConnectionAck)throw new Error(`First message cannot be of type ${d.type}`);clearTimeout(E),k=!0,f.emit("connected",i,d.payload),U=!1,G=0,a([i,new Promise((we,fe)=>K(fe))])}catch(d){i.onmessage=null,f.emit("error",d),i.close(p.BadResponse,$(d instanceof Error?d.message:new Error(d).message,"Bad response"))}}})()));t.readyState===P.CLOSING&&(yield l);let s=()=>{};const o=new Promise(a=>s=a);return[t,s,Promise.race([o.then(()=>{if(!h){const a=()=>t.close(1e3,"Normal Closure");isFinite(M)&&M>0?setTimeout(()=>{!h&&t.readyState===P.OPEN&&a()},M):a()}}),l])]}),j.apply(this,arguments)}function Y(t){if(L(t)&&(function re(e){return![1e3,1001,1006,1005,1012,1013,1013].includes(e)&&e>=1e3&&e<=1999}(t.code)||[p.InternalServerError,p.InternalClientError,p.BadRequest,p.BadResponse,p.Unauthorized,p.SubprotocolNotAcceptable,p.SubscriberAlreadyExists,p.TooManyInitialisationRequests].includes(t.code)))throw t;if(V)return!1;if(L(t)&&1e3===t.code)return h>0;if(!C||G>=C||!le(t)||q?.(t))throw t;return U=!0}return F||(0,g.A)(function*(){for(h++;;)try{const[,,t]=yield X();yield t}catch(t){try{if(!Y(t))return}catch(l){return w?.(l)}}})(),{on:f.on,subscribe(t,l){const s=ue();let o=!1,a=!1,b=()=>{h--,o=!0};return(0,g.A)(function*(){for(h++;;)try{const[i,E,R]=yield X();if(o)return E();const z=f.onMessage(s,k=>{switch(k.type){case c.Next:return void l.next(k.payload);case c.Error:return a=!0,o=!0,l.error(k.payload),void b();case c.Complete:return o=!0,void b()}});return i.send(O({id:s,type:c.Subscribe,payload:t},H)),b=()=>{!o&&i.readyState===P.OPEN&&i.send(O({id:s,type:c.Complete},H)),h--,o=!0,E()},void(yield R.finally(z))}catch(i){if(!Y(i))return}})().then(()=>{a||l.complete()}).catch(i=>{l.error(i)}),()=>{o||b()}},dispose:()=>(0,g.A)(function*(){if(V=!0,m){const[t]=yield m;t.close(1e3,"Normal Closure")}})(),terminate(){m&&f.emit("closed",{code:4499,reason:"Terminated",wasClean:!1})}}}({url:n.url,connectionParams:n.additionalParams,lazy:!1,onNonLazyError:w=>{y.error(w)},on:{error:w=>{y.error(w)}}}),!this.client)throw new Error("Could not create GraphQL WS client!");const F=Date.now();return this.cleanup=this.client.subscribe({query:n.query,variables:n.variables,operationName:n.selectedOperation??void 0,extensions:n.extensions},(0,ie.G)(y,n.url,F)),()=>{this.destroy()}})}destroy(){var n=this;return(0,g.A)(function*(){try{n.cleanup?.(),n.cleanup=void 0,yield n.client?.dispose(),n.client=void 0}catch(y){console.error(y)}})()}}}}]); //# sourceMappingURL=241.js.map //# debugId=fe215e4b-002f-549f-b997-e06e205bd393