diff --git a/lib/socket/api-request-handler.react.js b/lib/socket/api-request-handler.react.js --- a/lib/socket/api-request-handler.react.js +++ b/lib/socket/api-request-handler.react.js @@ -3,7 +3,7 @@ import invariant from 'invariant'; import * as React from 'react'; -import { InflightRequests, SocketOffline } from './inflight-requests.js'; +import { InflightRequests } from './inflight-requests.js'; import type { APIRequest } from '../types/endpoints.js'; import { clientSocketMessageTypes, @@ -12,6 +12,7 @@ type ConnectionInfo, } from '../types/socket-types.js'; import { registerActiveSocket } from '../utils/action-utils.js'; +import { SocketOffline } from '../utils/errors.js'; import { useSelector } from '../utils/redux-utils.js'; type BaseProps = { diff --git a/lib/socket/inflight-requests.js b/lib/socket/inflight-requests.js --- a/lib/socket/inflight-requests.js +++ b/lib/socket/inflight-requests.js @@ -16,7 +16,7 @@ type ServerSocketMessageType, serverSocketMessageTypes, } from '../types/socket-types.js'; -import { ServerError, ExtendableError } from '../utils/errors.js'; +import { ServerError, SocketOffline, SocketTimeout } from '../utils/errors.js'; import sleep from '../utils/sleep.js'; type ValidResponseMessageMap = { @@ -43,15 +43,6 @@ const remainingTimeAfterVisualTimeout = clientRequestSocketTimeout - clientRequestVisualTimeout; -class SocketOffline extends ExtendableError {} - -class SocketTimeout extends ExtendableError { - expectedResponseType: ServerSocketMessageType; - constructor(expectedType: ServerSocketMessageType) { - super(`socket timed out waiting for response type ${expectedType}`); - this.expectedResponseType = expectedType; - } -} type Callbacks = { timeout: () => void, setLateResponse: (messageID: number, isLate: boolean) => void, @@ -248,4 +239,4 @@ } } -export { SocketOffline, SocketTimeout, InflightRequests }; +export { InflightRequests }; diff --git a/lib/socket/request-response-handler.react.js b/lib/socket/request-response-handler.react.js --- a/lib/socket/request-response-handler.react.js +++ b/lib/socket/request-response-handler.react.js @@ -4,7 +4,7 @@ import * as React from 'react'; import { useDispatch } from 'react-redux'; -import { InflightRequests, SocketTimeout } from './inflight-requests.js'; +import { InflightRequests } from './inflight-requests.js'; import type { CalendarQuery } from '../types/entry-types.js'; import type { Dispatch } from '../types/redux-types.js'; import { @@ -21,7 +21,7 @@ type SocketListener, type ConnectionInfo, } from '../types/socket-types.js'; -import { ServerError } from '../utils/errors.js'; +import { ServerError, SocketTimeout } from '../utils/errors.js'; import { useSelector } from '../utils/redux-utils.js'; type BaseProps = { diff --git a/lib/socket/socket.react.js b/lib/socket/socket.react.js --- a/lib/socket/socket.react.js +++ b/lib/socket/socket.react.js @@ -7,11 +7,7 @@ import ActivityHandler from './activity-handler.react.js'; import APIRequestHandler from './api-request-handler.react.js'; import CalendarQueryHandler from './calendar-query-handler.react.js'; -import { - InflightRequests, - SocketTimeout, - SocketOffline, -} from './inflight-requests.js'; +import { InflightRequests } from './inflight-requests.js'; import MessageHandler from './message-handler.react.js'; import ReportHandler from './report-handler.react.js'; import RequestResponseHandler from './request-response-handler.react.js'; @@ -71,7 +67,7 @@ fetchNewCookieFromNativeCredentials, } from '../utils/action-utils.js'; import { getConfig } from '../utils/config.js'; -import { ServerError } from '../utils/errors.js'; +import { ServerError, SocketTimeout, SocketOffline } from '../utils/errors.js'; import { promiseAll } from '../utils/promises.js'; import sleep from '../utils/sleep.js'; diff --git a/lib/utils/call-server-endpoint.js b/lib/utils/call-server-endpoint.js --- a/lib/utils/call-server-endpoint.js +++ b/lib/utils/call-server-endpoint.js @@ -1,11 +1,15 @@ // @flow import { getConfig } from './config.js'; -import { ServerError, FetchTimeout } from './errors.js'; +import { + ServerError, + FetchTimeout, + SocketOffline, + SocketTimeout, +} from './errors.js'; import sleep from './sleep.js'; import { uploadBlob, type UploadBlob } from './upload-blob.js'; import { callServerEndpointTimeout } from '../shared/timeouts.js'; -import { SocketOffline, SocketTimeout } from '../socket/inflight-requests.js'; import type { Shape } from '../types/core.js'; import { type Endpoint, diff --git a/lib/utils/errors.js b/lib/utils/errors.js --- a/lib/utils/errors.js +++ b/lib/utils/errors.js @@ -3,6 +3,7 @@ import copyError from 'utils-copy-error'; import type { PlatformDetails } from '../types/device-types.js'; +import type { ServerSocketMessageType } from '../types/socket-types.js'; class ExtendableError extends Error { constructor(message: string) { @@ -41,6 +42,16 @@ } } +class SocketOffline extends ExtendableError {} + +class SocketTimeout extends ExtendableError { + expectedResponseType: ServerSocketMessageType; + constructor(expectedType: ServerSocketMessageType) { + super(`socket timed out waiting for response type ${expectedType}`); + this.expectedResponseType = expectedType; + } +} + function getMessageForException(e: mixed): ?string { if (typeof e === 'string') { return e; @@ -65,4 +76,6 @@ FetchTimeout, getMessageForException, cloneError, + SocketOffline, + SocketTimeout, };