graphql-ws
Advanced tools
Comparing version 4.1.0 to 4.1.1
@@ -0,1 +1,9 @@ | ||
## [4.1.1](https://github.com/enisdenjo/graphql-ws/compare/v4.1.0...v4.1.1) (2021-01-19) | ||
### Bug Fixes | ||
* **client:** Export relevant elements from the browser bundle ([b106dbe](https://github.com/enisdenjo/graphql-ws/commit/b106dbed1440488692a5588dcfd73f2f5a855a74)), closes [#97](https://github.com/enisdenjo/graphql-ws/issues/97) | ||
* **client:** Wait for server acknowledgement indefinitely ([a4bd602](https://github.com/enisdenjo/graphql-ws/commit/a4bd6029916e26a48b3f1acbbf9d741775e34baa)), closes [#98](https://github.com/enisdenjo/graphql-ws/issues/98) | ||
# [4.1.0](https://github.com/enisdenjo/graphql-ws/compare/v4.0.0...v4.1.0) (2021-01-13) | ||
@@ -2,0 +10,0 @@ |
@@ -8,2 +8,4 @@ /** | ||
import { SubscribePayload } from './message'; | ||
export * from './message'; | ||
export * from './protocol'; | ||
export declare type EventConnecting = 'connecting'; | ||
@@ -10,0 +12,0 @@ export declare type EventConnected = 'connected'; |
@@ -7,2 +7,12 @@ "use strict"; | ||
*/ | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -13,2 +23,5 @@ exports.createClient = void 0; | ||
const utils_1 = require("./utils"); | ||
// this file is the entry point for browsers, re-export relevant elements | ||
__exportStar(require("./message"), exports); | ||
__exportStar(require("./protocol"), exports); | ||
/** Creates a disposable GraphQL over WebSocket client. */ | ||
@@ -161,5 +174,2 @@ function createClient(options) { | ||
cancellerRef.current = () => (cancelled = true); | ||
const tooLong = setTimeout(() => { | ||
socket.close(3408, 'Waited 5 seconds but socket connect never settled'); | ||
}, 5 * 1000); | ||
/** | ||
@@ -175,3 +185,2 @@ * `onerror` handler is unnecessary because even if an error occurs, the `onclose` handler will be called | ||
socket.onclose = null; | ||
clearTimeout(tooLong); | ||
state = Object.assign(Object.assign({}, state), { acknowledged: false, socket: null }); | ||
@@ -192,3 +201,2 @@ emitter.emit('closed', event); | ||
} | ||
clearTimeout(tooLong); | ||
state = Object.assign(Object.assign({}, state), { acknowledged: true, socket, retrying: false, retries: 0 }); | ||
@@ -195,0 +203,0 @@ emitter.emit('connected', socket, message.payload); // connected = socket opened + acknowledged |
{ | ||
"name": "graphql-ws", | ||
"version": "4.1.0", | ||
"version": "4.1.1", | ||
"description": "Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client", | ||
@@ -68,7 +68,7 @@ "keywords": [ | ||
"@types/ws": "^7.4.0", | ||
"@typescript-eslint/eslint-plugin": "^4.13.0", | ||
"@typescript-eslint/parser": "^4.13.0", | ||
"@typescript-eslint/eslint-plugin": "^4.14.0", | ||
"@typescript-eslint/parser": "^4.14.0", | ||
"babel-jest": "^26.6.3", | ||
"eslint": "^7.17.0", | ||
"eslint-config-prettier": "^7.1.0", | ||
"eslint": "^7.18.0", | ||
"eslint-config-prettier": "^7.2.0", | ||
"eslint-plugin-prettier": "^3.3.1", | ||
@@ -78,8 +78,8 @@ "graphql": "^15.4.0", | ||
"prettier": "^2.2.1", | ||
"rollup": "^2.36.1", | ||
"rollup": "^2.37.0", | ||
"rollup-plugin-terser": "^7.0.2", | ||
"semantic-release": "^17.3.1", | ||
"semantic-release": "^17.3.4", | ||
"tslib": "^2.1.0", | ||
"typedoc": "^0.20.14", | ||
"typedoc-plugin-markdown": "^3.4.0", | ||
"typedoc": "^0.20.16", | ||
"typedoc-plugin-markdown": "^3.4.1", | ||
"typescript": "^4.1.3", | ||
@@ -86,0 +86,0 @@ "ws": "^7.4.2" |
@@ -42,4 +42,2 @@ (function (global, factory) { | ||
*/ | ||
/** Types of messages allowed to be sent by the client/server over the WS protocol. */ | ||
var MessageType; | ||
(function (MessageType) { | ||
@@ -52,3 +50,3 @@ MessageType["ConnectionInit"] = "connection_init"; | ||
MessageType["Complete"] = "complete"; | ||
})(MessageType || (MessageType = {})); | ||
})(exports.MessageType || (exports.MessageType = {})); | ||
/** Checks if the provided value is a message. */ | ||
@@ -63,3 +61,3 @@ function isMessage(val) { | ||
switch (val.type) { | ||
case MessageType.ConnectionInit: | ||
case exports.MessageType.ConnectionInit: | ||
// the connection init message can have optional payload object | ||
@@ -69,3 +67,3 @@ return (!hasOwnProperty(val, 'payload') || | ||
isObject(val.payload)); | ||
case MessageType.ConnectionAck: | ||
case exports.MessageType.ConnectionAck: | ||
// the connection ack message can have optional payload object too | ||
@@ -75,3 +73,3 @@ return (!hasOwnProperty(val, 'payload') || | ||
isObject(val.payload)); | ||
case MessageType.Subscribe: | ||
case exports.MessageType.Subscribe: | ||
return (hasOwnStringProperty(val, 'id') && | ||
@@ -88,8 +86,8 @@ hasOwnObjectProperty(val, 'payload') && | ||
hasOwnObjectProperty(val.payload, 'variables'))); | ||
case MessageType.Next: | ||
case exports.MessageType.Next: | ||
return (hasOwnStringProperty(val, 'id') && | ||
hasOwnObjectProperty(val, 'payload')); | ||
case MessageType.Error: | ||
case exports.MessageType.Error: | ||
return hasOwnStringProperty(val, 'id') && areGraphQLErrors(val.payload); | ||
case MessageType.Complete: | ||
case exports.MessageType.Complete: | ||
return hasOwnStringProperty(val, 'id'); | ||
@@ -276,5 +274,2 @@ default: | ||
cancellerRef.current = () => (cancelled = true); | ||
const tooLong = setTimeout(() => { | ||
socket.close(3408, 'Waited 5 seconds but socket connect never settled'); | ||
}, 5 * 1000); | ||
/** | ||
@@ -290,3 +285,2 @@ * `onerror` handler is unnecessary because even if an error occurs, the `onclose` handler will be called | ||
socket.onclose = null; | ||
clearTimeout(tooLong); | ||
state = Object.assign(Object.assign({}, state), { acknowledged: false, socket: null }); | ||
@@ -304,6 +298,5 @@ emitter.emit('closed', event); | ||
const message = parseMessage(event.data); | ||
if (message.type !== MessageType.ConnectionAck) { | ||
if (message.type !== exports.MessageType.ConnectionAck) { | ||
throw new Error(`First message cannot be of type ${message.type}`); | ||
} | ||
clearTimeout(tooLong); | ||
state = Object.assign(Object.assign({}, state), { acknowledged: true, socket, retrying: false, retries: 0 }); | ||
@@ -328,3 +321,3 @@ emitter.emit('connected', socket, message.payload); // connected = socket opened + acknowledged | ||
socket.send(stringifyMessage({ | ||
type: MessageType.ConnectionInit, | ||
type: exports.MessageType.ConnectionInit, | ||
payload: typeof connectionParams === 'function' | ||
@@ -466,3 +459,3 @@ ? await connectionParams() | ||
switch (message.type) { | ||
case MessageType.Next: { | ||
case exports.MessageType.Next: { | ||
if (message.id === id) { | ||
@@ -474,3 +467,3 @@ // eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
} | ||
case MessageType.Error: { | ||
case exports.MessageType.Error: { | ||
if (message.id === id) { | ||
@@ -488,3 +481,3 @@ sink.error(message.payload); | ||
} | ||
case MessageType.Complete: { | ||
case exports.MessageType.Complete: { | ||
if (message.id === id) { | ||
@@ -510,3 +503,3 @@ completed = true; | ||
id: id, | ||
type: MessageType.Subscribe, | ||
type: exports.MessageType.Subscribe, | ||
payload, | ||
@@ -521,3 +514,3 @@ })); | ||
id: id, | ||
type: MessageType.Complete, | ||
type: exports.MessageType.Complete, | ||
})); | ||
@@ -564,3 +557,7 @@ } | ||
exports.GRAPHQL_TRANSPORT_WS_PROTOCOL = GRAPHQL_TRANSPORT_WS_PROTOCOL; | ||
exports.createClient = createClient; | ||
exports.isMessage = isMessage; | ||
exports.parseMessage = parseMessage; | ||
exports.stringifyMessage = stringifyMessage; | ||
@@ -567,0 +564,0 @@ Object.defineProperty(exports, '__esModule', { value: true }); |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).graphqlWs={})}(this,(function(e){"use strict";const t=Object.prototype.hasOwnProperty;function n(e){return"object"==typeof e&&null!==e}function o(e,n){return t.call(e,n)}function r(e,o){return t.call(e,o)&&n(e[o])}function c(e,n){return t.call(e,n)&&"string"==typeof e[n]}var i;function s(e){if(n(e)){if(!c(e,"type"))return!1;switch(e.type){case i.ConnectionInit:case i.ConnectionAck:return!o(e,"payload")||void 0===e.payload||n(e.payload);case i.Subscribe:return c(e,"id")&&r(e,"payload")&&(!o(e.payload,"operationName")||void 0===e.payload.operationName||null===e.payload.operationName||"string"==typeof e.payload.operationName)&&c(e.payload,"query")&&(!o(e.payload,"variables")||void 0===e.payload.variables||null===e.payload.variables||r(e.payload,"variables"));case i.Next:return c(e,"id")&&r(e,"payload");case i.Error:return c(e,"id")&&(t=e.payload,Array.isArray(t)&&t.length>0&&t.every((e=>"message"in e)));case i.Complete:return c(e,"id");default:return!1}}var t;return!1}function a(e){if(s(e))return e;if("string"!=typeof e)throw new Error("Message not parsable");const t=JSON.parse(e);if(!s(t))throw new Error("Invalid message");return t}function l(e){if(!s(e))throw new Error("Cannot stringify invalid message");return JSON.stringify(e)}!function(e){e.ConnectionInit="connection_init",e.ConnectionAck="connection_ack",e.Subscribe="subscribe",e.Next="next",e.Error="error",e.Complete="complete"}(i||(i={})),e.createClient=function(e){const{url:t,connectionParams:o,lazy:r=!0,onNonLazyError:c=console.error,keepAlive:s=0,retryAttempts:u=5,retryWait:d=async function(e){let t=1e3;for(let n=0;n<e;n++)t*=2;await new Promise((e=>setTimeout(e,t+Math.floor(2700*Math.random()+300))))},on:f,webSocketImpl:p,generateID:y=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}}=e;let g;if(p){if(!("function"==typeof(m=p)&&"constructor"in m&&"CLOSED"in m&&"CLOSING"in m&&"CONNECTING"in m&&"OPEN"in m))throw new Error("Invalid WebSocket implementation provided");g=p}else"undefined"!=typeof WebSocket?g=WebSocket:"undefined"!=typeof global?g=global.WebSocket||global.MozWebSocket:"undefined"!=typeof window&&(g=window.WebSocket||window.MozWebSocket);var m;if(!g)throw new Error("WebSocket implementation missing");const w=g,b=(()=>{const e={connecting:(null==f?void 0:f.connecting)?[f.connecting]:[],connected:(null==f?void 0:f.connected)?[f.connected]:[],closed:(null==f?void 0:f.closed)?[f.closed]:[]};return{on(t,n){const o=e[t];return o.push(n),()=>{o.splice(o.indexOf(n),1)}},emit(t,...n){for(const o of e[t])o(...n)},reset(){Object.keys(e).forEach((t=>{e[t]=[]}))}}})();let v={disposed:!1,socket:null,acknowledged:!1,locks:0,retrying:!1,retries:0};const h=[];async function k(e,n=0){var r;if(n){if(n>10)throw new Error("Kept trying to connect but the socket never settled.");await new Promise((e=>setTimeout(e,50*n)))}if(v.retrying)if(h.length)await new Promise((e=>h.push(e)));else for(h.push((()=>{})),await d(v.retries),v=Object.assign(Object.assign({},v),{retrying:!1,retries:v.retries+1});h.length;)null===(r=h.pop())||void 0===r||r();if(v.socket)switch(v.socket.readyState){case w.OPEN:return v.acknowledged?x(v.socket,e):k(e,n+1);case w.CONNECTING:return k(e,n+1);case w.CLOSED:break;case w.CLOSING:return k(e,n+1);default:throw new Error(`Impossible ready state ${v.socket.readyState}`)}const c=new w(t,"graphql-transport-ws");return v=Object.assign(Object.assign({},v),{acknowledged:!1,socket:c}),b.emit("connecting"),await new Promise(((t,n)=>{let r=!1;e.current=()=>r=!0;const s=setTimeout((()=>{c.close(3408,"Waited 5 seconds but socket connect never settled")}),5e3);c.onclose=e=>(c.onclose=null,clearTimeout(s),v=Object.assign(Object.assign({},v),{acknowledged:!1,socket:null}),b.emit("closed",e),n(e)),c.onmessage=e=>{if(c.onmessage=null,r)c.close(3499,"Client cancelled the socket before connecting");else try{const n=a(e.data);if(n.type!==i.ConnectionAck)throw new Error(`First message cannot be of type ${n.type}`);return clearTimeout(s),v=Object.assign(Object.assign({},v),{acknowledged:!0,socket:c,retrying:!1,retries:0}),b.emit("connected",c,n.payload),t()}catch(e){c.close(4400,e instanceof Error?e.message:new Error(e).message)}},c.onopen=()=>{c.onopen=null,r?c.close(3499,"Client cancelled the socket before connecting"):(async()=>{try{c.send(l({type:i.ConnectionInit,payload:"function"==typeof o?await o():o}))}catch(e){c.close(4400,e instanceof Error?e.message:new Error(e).message)}})()}})),x(c,e)}async function x(e,t){return[e,n=>new Promise(((o,r)=>{if(e.readyState===w.CLOSED)return r(new Error("Socket has already been closed"));function c(n){return t.current=null,v.locks--,e.removeEventListener("close",c),r(n)}v.locks++,e.addEventListener("close",c),t.current=()=>(t.current=null,null==n||n(),v.locks--,v.locks||(s>0&&isFinite(s)?setTimeout((()=>{!v.locks&&e.OPEN&&e.close(1e3,"Normal Closure")}),s):e.close(1e3,"Normal Closure")),e.removeEventListener("close",c),o())}))]}function E(e){if(!function(e){return n(e)&&"code"in e&&"reason"in e}(e))throw e;if([1002,1011,4400,4401,4409,4429].includes(e.code))throw e;if(v.disposed||1e3===e.code)return!1;if(3499===e.code)return!1;if(!u||v.retries>=u)throw e;return v.retrying=!0,!0}let C,O;return r||(async()=>{for(;;)try{const[,e]=await k({current:null});return void await e()}catch(e){try{if(!E(e))return null==c?void 0:c(e)}catch(t){return null==c?void 0:c(e)}}})(),{on:b.on,subscribe(e,t){const n=y();let o=!1;const r={current:null},c=({data:e})=>{const c=function(e){return e!==C&&(O=a(e),C=e),O}(e);switch(c.type){case i.Next:return void(c.id===n&&t.next(c.payload));case i.Error:return void(c.id===n&&(t.error(c.payload),r.current()));case i.Complete:return void(c.id===n&&(o=!0,r.current()))}};return(async()=>{for(;;)try{const[t,s]=await k(r);return t.addEventListener("message",c),t.send(l({id:n,type:i.Subscribe,payload:e})),await s((()=>{o||t.send(l({id:n,type:i.Complete}))})),void t.removeEventListener("message",c)}catch(e){if(!E(e))return}})().catch(t.error).then(t.complete),()=>{var e;null===(e=r.current)||void 0===e||e.call(r)}},dispose(){var e;v.disposed=!0,null===(e=v.socket)||void 0===e||e.close(1e3,"Normal Closure"),b.reset()}}},Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).graphqlWs={})}(this,(function(e){"use strict";const n="graphql-transport-ws",t=Object.prototype.hasOwnProperty;function r(e){return"object"==typeof e&&null!==e}function o(e,n){return t.call(e,n)}function s(e,n){return t.call(e,n)&&r(e[n])}function a(e,n){return t.call(e,n)&&"string"==typeof e[n]}var i;function c(n){if(r(n)){if(!a(n,"type"))return!1;switch(n.type){case e.MessageType.ConnectionInit:case e.MessageType.ConnectionAck:return!o(n,"payload")||void 0===n.payload||r(n.payload);case e.MessageType.Subscribe:return a(n,"id")&&s(n,"payload")&&(!o(n.payload,"operationName")||void 0===n.payload.operationName||null===n.payload.operationName||"string"==typeof n.payload.operationName)&&a(n.payload,"query")&&(!o(n.payload,"variables")||void 0===n.payload.variables||null===n.payload.variables||s(n.payload,"variables"));case e.MessageType.Next:return a(n,"id")&&s(n,"payload");case e.MessageType.Error:return a(n,"id")&&(t=n.payload,Array.isArray(t)&&t.length>0&&t.every((e=>"message"in e)));case e.MessageType.Complete:return a(n,"id");default:return!1}}var t;return!1}function l(e){if(c(e))return e;if("string"!=typeof e)throw new Error("Message not parsable");const n=JSON.parse(e);if(!c(n))throw new Error("Invalid message");return n}function d(e){if(!c(e))throw new Error("Cannot stringify invalid message");return JSON.stringify(e)}(i=e.MessageType||(e.MessageType={})).ConnectionInit="connection_init",i.ConnectionAck="connection_ack",i.Subscribe="subscribe",i.Next="next",i.Error="error",i.Complete="complete",e.GRAPHQL_TRANSPORT_WS_PROTOCOL=n,e.createClient=function(t){const{url:o,connectionParams:s,lazy:a=!0,onNonLazyError:i=console.error,keepAlive:c=0,retryAttempts:u=5,retryWait:p=async function(e){let n=1e3;for(let t=0;t<e;t++)n*=2;await new Promise((e=>setTimeout(e,n+Math.floor(2700*Math.random()+300))))},on:y,webSocketImpl:f,generateID:g=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const n=16*Math.random()|0;return("x"==e?n:3&n|8).toString(16)}))}}=t;let w;if(f){if(!("function"==typeof(m=f)&&"constructor"in m&&"CLOSED"in m&&"CLOSING"in m&&"CONNECTING"in m&&"OPEN"in m))throw new Error("Invalid WebSocket implementation provided");w=f}else"undefined"!=typeof WebSocket?w=WebSocket:"undefined"!=typeof global?w=global.WebSocket||global.MozWebSocket:"undefined"!=typeof window&&(w=window.WebSocket||window.MozWebSocket);var m;if(!w)throw new Error("WebSocket implementation missing");const b=w,v=(()=>{const e={connecting:(null==y?void 0:y.connecting)?[y.connecting]:[],connected:(null==y?void 0:y.connected)?[y.connected]:[],closed:(null==y?void 0:y.closed)?[y.closed]:[]};return{on(n,t){const r=e[n];return r.push(t),()=>{r.splice(r.indexOf(t),1)}},emit(n,...t){for(const r of e[n])r(...t)},reset(){Object.keys(e).forEach((n=>{e[n]=[]}))}}})();let h={disposed:!1,socket:null,acknowledged:!1,locks:0,retrying:!1,retries:0};const x=[];async function k(t,r=0){var a;if(r){if(r>10)throw new Error("Kept trying to connect but the socket never settled.");await new Promise((e=>setTimeout(e,50*r)))}if(h.retrying)if(x.length)await new Promise((e=>x.push(e)));else for(x.push((()=>{})),await p(h.retries),h=Object.assign(Object.assign({},h),{retrying:!1,retries:h.retries+1});x.length;)null===(a=x.pop())||void 0===a||a();if(h.socket)switch(h.socket.readyState){case b.OPEN:return h.acknowledged?E(h.socket,t):k(t,r+1);case b.CONNECTING:return k(t,r+1);case b.CLOSED:break;case b.CLOSING:return k(t,r+1);default:throw new Error(`Impossible ready state ${h.socket.readyState}`)}const i=new b(o,n);return h=Object.assign(Object.assign({},h),{acknowledged:!1,socket:i}),v.emit("connecting"),await new Promise(((n,r)=>{let o=!1;t.current=()=>o=!0,i.onclose=e=>(i.onclose=null,h=Object.assign(Object.assign({},h),{acknowledged:!1,socket:null}),v.emit("closed",e),r(e)),i.onmessage=t=>{if(i.onmessage=null,o)i.close(3499,"Client cancelled the socket before connecting");else try{const r=l(t.data);if(r.type!==e.MessageType.ConnectionAck)throw new Error(`First message cannot be of type ${r.type}`);return h=Object.assign(Object.assign({},h),{acknowledged:!0,socket:i,retrying:!1,retries:0}),v.emit("connected",i,r.payload),n()}catch(e){i.close(4400,e instanceof Error?e.message:new Error(e).message)}},i.onopen=()=>{i.onopen=null,o?i.close(3499,"Client cancelled the socket before connecting"):(async()=>{try{i.send(d({type:e.MessageType.ConnectionInit,payload:"function"==typeof s?await s():s}))}catch(e){i.close(4400,e instanceof Error?e.message:new Error(e).message)}})()}})),E(i,t)}async function E(e,n){return[e,t=>new Promise(((r,o)=>{if(e.readyState===b.CLOSED)return o(new Error("Socket has already been closed"));function s(t){return n.current=null,h.locks--,e.removeEventListener("close",s),o(t)}h.locks++,e.addEventListener("close",s),n.current=()=>(n.current=null,null==t||t(),h.locks--,h.locks||(c>0&&isFinite(c)?setTimeout((()=>{!h.locks&&e.OPEN&&e.close(1e3,"Normal Closure")}),c):e.close(1e3,"Normal Closure")),e.removeEventListener("close",s),r())}))]}function O(e){if(!function(e){return r(e)&&"code"in e&&"reason"in e}(e))throw e;if([1002,1011,4400,4401,4409,4429].includes(e.code))throw e;if(h.disposed||1e3===e.code)return!1;if(3499===e.code)return!1;if(!u||h.retries>=u)throw e;return h.retrying=!0,!0}let C,S;return a||(async()=>{for(;;)try{const[,e]=await k({current:null});return void await e()}catch(e){try{if(!O(e))return null==i?void 0:i(e)}catch(n){return null==i?void 0:i(e)}}})(),{on:v.on,subscribe(n,t){const r=g();let o=!1;const s={current:null},a=({data:n})=>{const a=function(e){return e!==C&&(S=l(e),C=e),S}(n);switch(a.type){case e.MessageType.Next:return void(a.id===r&&t.next(a.payload));case e.MessageType.Error:return void(a.id===r&&(t.error(a.payload),s.current()));case e.MessageType.Complete:return void(a.id===r&&(o=!0,s.current()))}};return(async()=>{for(;;)try{const[t,i]=await k(s);return t.addEventListener("message",a),t.send(d({id:r,type:e.MessageType.Subscribe,payload:n})),await i((()=>{o||t.send(d({id:r,type:e.MessageType.Complete}))})),void t.removeEventListener("message",a)}catch(e){if(!O(e))return}})().catch(t.error).then(t.complete),()=>{var e;null===(e=s.current)||void 0===e||e.call(s)}},dispose(){var e;h.disposed=!0,null===(e=h.socket)||void 0===e||e.close(1e3,"Normal Closure"),v.reset()}}},e.isMessage=c,e.parseMessage=l,e.stringifyMessage=d,Object.defineProperty(e,"__esModule",{value:!0})})); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
216043
3072