From be27d068868aeb20bbf96f049b1d9b6b2c3502a2 Mon Sep 17 00:00:00 2001 From: Owen Pearson Date: Thu, 7 Oct 2021 15:01:15 +0100 Subject: [PATCH 1/3] Rename connectionerror.js to connectionerror.ts --- common/lib/transport/{connectionerror.js => connectionerror.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename common/lib/transport/{connectionerror.js => connectionerror.ts} (100%) diff --git a/common/lib/transport/connectionerror.js b/common/lib/transport/connectionerror.ts similarity index 100% rename from common/lib/transport/connectionerror.js rename to common/lib/transport/connectionerror.ts From 6f38162982d1ba1b1f8d01621f44232102628903 Mon Sep 17 00:00:00 2001 From: Owen Pearson Date: Thu, 7 Oct 2021 15:01:49 +0100 Subject: [PATCH 2/3] Convert connectionerror to TypeScript --- common/lib/transport/connectionerror.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/common/lib/transport/connectionerror.ts b/common/lib/transport/connectionerror.ts index 35debf35f6..a2f3369500 100644 --- a/common/lib/transport/connectionerror.ts +++ b/common/lib/transport/connectionerror.ts @@ -1,7 +1,6 @@ import ErrorInfo from '../types/errorinfo'; -import * as Utils from '../util/utils'; -var ConnectionError = { +const ConnectionError = { disconnected: ErrorInfo.fromValues({ statusCode: 400, code: 80003, @@ -39,17 +38,17 @@ var ConnectionError = { }) }; -ConnectionError.isRetriable = function(err) { +function isRetriable(err: ErrorInfo) { if (!err.statusCode || !err.code || err.statusCode >= 500) { return true; } - var retriable = false; - Utils.valuesArray(ConnectionError).forEach(function(connErr) { + let retriable = false; + Object.values(ConnectionError).forEach(function(connErr) { if (connErr.code && connErr.code == err.code) { retriable = true; } - }); + }) return retriable; -}; +} -export default ConnectionError; +export default { ...ConnectionError, isRetriable }; From 342e56a1c0917d4dccb28fc596f8019fd8cda866 Mon Sep 17 00:00:00 2001 From: Owen Pearson Date: Mon, 11 Oct 2021 11:58:58 +0100 Subject: [PATCH 3/3] Rename ConnectionError to ConnectionErrors --- .jshintrc | 2 +- common/lib/client/realtimechannel.js | 4 ++-- common/lib/client/realtimepresence.js | 4 ++-- common/lib/transport/comettransport.js | 4 ++-- .../{connectionerror.ts => connectionerrors.ts} | 6 +++--- common/lib/transport/connectionmanager.js | 10 +++++----- common/lib/transport/transport.js | 8 ++++---- nodejs/realtime.js | 2 +- 8 files changed, 20 insertions(+), 20 deletions(-) rename common/lib/transport/{connectionerror.ts => connectionerrors.ts} (88%) diff --git a/.jshintrc b/.jshintrc index dabc7ef988..9be934a0dd 100644 --- a/.jshintrc +++ b/.jshintrc @@ -42,7 +42,7 @@ "PresenceMessage": true, "ProtocolMessage": true, "Stats": true, - "ConnectionError": true, + "ConnectionErrors": true, "MessageQueue": true, "Protocol": true, "ConnectionManager": true, diff --git a/common/lib/client/realtimechannel.js b/common/lib/client/realtimechannel.js index 3afcd68844..24133797a6 100644 --- a/common/lib/client/realtimechannel.js +++ b/common/lib/client/realtimechannel.js @@ -8,7 +8,7 @@ import Message from '../types/message'; import ChannelStateChange from './channelstatechange'; import ErrorInfo from '../types/errorinfo'; import PresenceMessage from '../types/presencemessage'; -import ConnectionError from '../transport/connectionerror'; +import ConnectionErrors from '../transport/connectionerrors'; var RealtimeChannel = (function() { var actions = ProtocolMessage.Action; @@ -552,7 +552,7 @@ var RealtimeChannel = (function() { default: Logger.logAction(Logger.LOG_ERROR, 'RealtimeChannel.onMessage()', 'Fatal protocol error: unrecognised action (' + message.action + ')'); - this.connectionManager.abort(ConnectionError.unknownChannelErr); + this.connectionManager.abort(ConnectionErrors.unknownChannelErr); } }; diff --git a/common/lib/client/realtimepresence.js b/common/lib/client/realtimepresence.js index aa6d989b23..505246ca03 100644 --- a/common/lib/client/realtimepresence.js +++ b/common/lib/client/realtimepresence.js @@ -5,7 +5,7 @@ import Logger from '../util/logger'; import PresenceMessage from '../types/presencemessage'; import ErrorInfo from '../types/errorinfo'; import RealtimeChannel from './realtimechannel'; -import ConnectionError from '../transport/connectionerror'; +import ConnectionErrors from '../transport/connectionerrors'; import Multicaster from '../util/multicaster'; import ChannelStateChange from './channelstatechange'; @@ -193,7 +193,7 @@ var RealtimePresence = (function() { default: /* there is no connection; therefore we let * any entered status timeout by itself */ - callback(ConnectionError.failed); + callback(ConnectionErrors.failed); } }; diff --git a/common/lib/transport/comettransport.js b/common/lib/transport/comettransport.js index 45a51b5296..16f9100e93 100644 --- a/common/lib/transport/comettransport.js +++ b/common/lib/transport/comettransport.js @@ -3,7 +3,7 @@ import ProtocolMessage from '../types/protocolmessage'; import Transport from '../transport/transport'; import Logger from '../util/logger'; import Defaults from '../util/defaults'; -import ConnectionError from './connectionerror'; +import ConnectionErrors from './connectionerrors'; import Auth from '../client/auth'; import ErrorInfo from '../types/errorinfo'; @@ -170,7 +170,7 @@ var CometTransport = (function() { } /* In almost all cases the transport will be finished before it's * disposed. Finish here just to make sure. */ - this.finish('disconnected', ConnectionError.disconnected); + this.finish('disconnected', ConnectionErrors.disconnected); var self = this; Utils.nextTick(function() { self.emit('disposed'); diff --git a/common/lib/transport/connectionerror.ts b/common/lib/transport/connectionerrors.ts similarity index 88% rename from common/lib/transport/connectionerror.ts rename to common/lib/transport/connectionerrors.ts index a2f3369500..b81520eca8 100644 --- a/common/lib/transport/connectionerror.ts +++ b/common/lib/transport/connectionerrors.ts @@ -1,6 +1,6 @@ import ErrorInfo from '../types/errorinfo'; -const ConnectionError = { +const ConnectionErrors = { disconnected: ErrorInfo.fromValues({ statusCode: 400, code: 80003, @@ -43,7 +43,7 @@ function isRetriable(err: ErrorInfo) { return true; } let retriable = false; - Object.values(ConnectionError).forEach(function(connErr) { + Object.values(ConnectionErrors).forEach(function(connErr) { if (connErr.code && connErr.code == err.code) { retriable = true; } @@ -51,4 +51,4 @@ function isRetriable(err: ErrorInfo) { return retriable; } -export default { ...ConnectionError, isRetriable }; +export default { ...ConnectionErrors, isRetriable }; diff --git a/common/lib/transport/connectionmanager.js b/common/lib/transport/connectionmanager.js index bac333bc3b..ac037bfa58 100644 --- a/common/lib/transport/connectionmanager.js +++ b/common/lib/transport/connectionmanager.js @@ -7,7 +7,7 @@ import EventEmitter from '../util/eventemitter'; import MessageQueue from './messagequeue'; import Logger from '../util/logger'; import ConnectionStateChange from '../client/connectionstatechange'; -import ConnectionError from '../transport/connectionerror'; +import ConnectionErrors from '../transport/connectionerrors'; import ErrorInfo from '../types/errorinfo'; import Auth from '../client/auth'; import Http from 'platform-http'; @@ -329,7 +329,7 @@ var ConnectionManager = (function() { self.notifyState({state: 'failed', error: wrappedErr.error}); callback(true); } else if(wrappedErr.event === 'disconnected') { - if(!ConnectionError.isRetriable(wrappedErr.error)) { + if(!ConnectionErrors.isRetriable(wrappedErr.error)) { /* Error received from the server that does not call for trying a fallback host, eg a rate limit */ self.notifyState({state: self.states.connecting.failState, error: wrappedErr.error}); callback(true); @@ -924,7 +924,7 @@ var ConnectionManager = (function() { }; ConnectionManager.prototype.getStateError = function() { - return ConnectionError[this.state.state]; + return ConnectionErrors[this.state.state]; }; ConnectionManager.prototype.activeState = function() { @@ -1061,7 +1061,7 @@ var ConnectionManager = (function() { /* process new state */ var newState = this.states[indicated.state], - change = new ConnectionStateChange(this.state.state, newState.state, newState.retryDelay, (indicated.error || ConnectionError[newState.state])); + change = new ConnectionStateChange(this.state.state, newState.state, newState.retryDelay, (indicated.error || ConnectionErrors[newState.state])); if(retryImmediately) { var autoReconnect = function() { @@ -1124,7 +1124,7 @@ var ConnectionManager = (function() { if(state == 'closing' && this.state.state == 'closed') return; var newState = this.states[state], - change = new ConnectionStateChange(this.state.state, newState.state, null, (request.error || ConnectionError[newState.state])); + change = new ConnectionStateChange(this.state.state, newState.state, null, (request.error || ConnectionErrors[newState.state])); this.enactStateChange(change); diff --git a/common/lib/transport/transport.js b/common/lib/transport/transport.js index 8913bcc21b..79971ce15d 100644 --- a/common/lib/transport/transport.js +++ b/common/lib/transport/transport.js @@ -2,7 +2,7 @@ import ProtocolMessage from '../types/protocolmessage'; import * as Utils from '../util/utils'; import EventEmitter from '../util/eventemitter'; import Logger from '../util/logger'; -import ConnectionError from '../transport/connectionerror'; +import ConnectionErrors from '../transport/connectionerrors'; import ErrorInfo from '../types/errorinfo'; var Transport = (function() { @@ -47,7 +47,7 @@ var Transport = (function() { if(this.isConnected) { this.requestClose(); } - this.finish('closed', ConnectionError.closed); + this.finish('closed', ConnectionErrors.closed); }; Transport.prototype.disconnect = function(err) { @@ -56,7 +56,7 @@ var Transport = (function() { if(this.isConnected) { this.requestDisconnect(); } - this.finish('disconnected', err || ConnectionError.disconnected); + this.finish('disconnected', err || ConnectionErrors.disconnected); }; Transport.prototype.fail = function(err) { @@ -64,7 +64,7 @@ var Transport = (function() { if(this.isConnected) { this.requestDisconnect(); } - this.finish('failed', err || ConnectionError.failed); + this.finish('failed', err || ConnectionErrors.failed); }; Transport.prototype.finish = function(event, err) { diff --git a/nodejs/realtime.js b/nodejs/realtime.js index ee8c5da0c6..cfeb774dd7 100644 --- a/nodejs/realtime.js +++ b/nodejs/realtime.js @@ -38,7 +38,7 @@ includeScript('../common/lib/types/protocolmessage.js'); includeScript('../common/lib/types/stats.js'); includeScript('../common/lib/types/devicedetails.js'); includeScript('../common/lib/types/pushchannelsubscription.js'); -includeScript('../common/lib/transport/connectionerror.js'); +includeScript('../common/lib/transport/connectionerrors.js'); includeScript('../common/lib/transport/messagequeue.js'); includeScript('../common/lib/transport/protocol.js'); includeScript('../common/lib/transport/connectionmanager.js');