graphql-ruby-client
Advanced tools
Comparing version 1.7.10 to 1.7.11
# graphql-ruby-client | ||
## 1.7.11 (15 June 2020) | ||
- Ably: Improve channel state handling in case the initial subscription result contains errors #2993 | ||
## 1.7.10 (13 June 2020) | ||
@@ -4,0 +8,0 @@ |
@@ -95,3 +95,2 @@ "use strict"; | ||
response = _a.sent(); | ||
dispatchResult(response.body); | ||
channelName = response.headers.get("X-Subscription-ID"); | ||
@@ -132,2 +131,6 @@ if (!channelName) { | ||
channel.subscribe("update", updateHandler); | ||
// Dispatch the result _after_ setting up the channel, | ||
// because Relay might immediately dispose of the subscription. | ||
// (In that case, we want to make sure the channel is cleaned up properly.) | ||
dispatchResult(response.body); | ||
return [3 /*break*/, 3]; | ||
@@ -144,27 +147,24 @@ case 2: | ||
dispose: function () { return __awaiter(_this, void 0, void 0, function () { | ||
var disposedChannel_1, leavePromise, detachPromise, error_2; | ||
var disposedChannel_1, error_2; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 3, , 4]); | ||
if (!channel) return [3 /*break*/, 2]; | ||
_a.trys.push([0, 5, , 6]); | ||
if (!channel) return [3 /*break*/, 4]; | ||
disposedChannel_1 = channel; | ||
disposedChannel_1.unsubscribe("update", updateHandler); | ||
leavePromise = new Promise(function (resolve, reject) { | ||
var callback = function (err) { | ||
if (err) { | ||
reject(new AblyError(err)); | ||
} | ||
else { | ||
resolve(); | ||
} | ||
}; | ||
if (isAnonymousClient()) { | ||
disposedChannel_1.presence.leaveClient(anonymousClientId, callback); | ||
} | ||
else { | ||
disposedChannel_1.presence.leave(callback); | ||
} | ||
}); | ||
detachPromise = new Promise(function (resolve, reject) { | ||
disposedChannel_1.unsubscribe(); | ||
if (!(disposedChannel_1.state === "attaching")) return [3 /*break*/, 2]; | ||
return [4 /*yield*/, new Promise(function (resolve, _reject) { | ||
var onStateChange = function (stateChange) { | ||
if (stateChange.current !== "attaching") { | ||
disposedChannel_1.off(onStateChange); | ||
resolve(); | ||
} | ||
}; | ||
disposedChannel_1.on(onStateChange); | ||
})]; | ||
case 1: | ||
_a.sent(); | ||
_a.label = 2; | ||
case 2: return [4 /*yield*/, new Promise(function (resolve, reject) { | ||
disposedChannel_1.detach(function (err) { | ||
@@ -178,14 +178,13 @@ if (err) { | ||
}); | ||
}); | ||
return [4 /*yield*/, Promise.all([leavePromise, detachPromise])]; | ||
case 1: | ||
})]; | ||
case 3: | ||
_a.sent(); | ||
ably.channels.release(disposedChannel_1.name); | ||
_a.label = 2; | ||
case 2: return [3 /*break*/, 4]; | ||
case 3: | ||
_a.label = 4; | ||
case 4: return [3 /*break*/, 6]; | ||
case 5: | ||
error_2 = _a.sent(); | ||
observer.onError(error_2); | ||
return [3 /*break*/, 4]; | ||
case 4: return [2 /*return*/]; | ||
return [3 /*break*/, 6]; | ||
case 6: return [2 /*return*/]; | ||
} | ||
@@ -192,0 +191,0 @@ }); |
{ | ||
"name": "graphql-ruby-client", | ||
"version": "1.7.10", | ||
"version": "1.7.11", | ||
"description": "JavaScript client for graphql-ruby", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
111753
58
2404