Skip to content

Commit 7d32f25

Browse files
committed
apply reviewer suggestions
1 parent 7f8669d commit 7d32f25

2 files changed

Lines changed: 29 additions & 16 deletions

File tree

packages/data-connect/src/core/query/QueryManager.ts

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ import {
3737
DataConnectResponse
3838
} from '../../network';
3939
import { decoderImpl, encoderImpl } from '../../util/encoder';
40-
import { Code, DataConnectError } from '../error';
40+
import {
41+
Code,
42+
DataConnectError,
43+
DataConnectOperationError,
44+
DataConnectOperationFailureResponse
45+
} from '../error';
4146

4247
import {
4348
OnCompleteSubscription,
@@ -450,24 +455,30 @@ export class QueryManager {
450455
queryRef: QueryRef<Data, Variables>
451456
): Promise<void> {
452457
if (response.errors && response.errors.length > 0) {
453-
const error = new DataConnectError(
454-
Code.OTHER,
458+
const stringified = JSON.stringify(
459+
response.errors.map(e => {
460+
if (e && typeof e === 'object') {
461+
return {
462+
message: (e as unknown as { message: string }).message,
463+
code: (e as unknown as { code?: unknown }).code
464+
};
465+
}
466+
return e;
467+
})
468+
);
469+
const failureResponse: DataConnectOperationFailureResponse = {
470+
errors: response.errors as [],
471+
data: response.data as Record<string, unknown>
472+
};
473+
const error = new DataConnectOperationError(
455474
'DataConnect error received from subscribe notification: ' +
456-
JSON.stringify(
457-
response.errors.map(e => {
458-
if (e && typeof e === 'object') {
459-
return {
460-
message: (e as unknown as { message: string }).message,
461-
code: (e as unknown as { code?: unknown }).code
462-
};
463-
}
464-
return e;
465-
})
466-
)
475+
stringified,
476+
failureResponse
467477
);
468478
this.publishErrorToSubscribers(key, error);
469479
return;
470480
}
481+
471482
const fetchTime = Date.now().toString();
472483
const queryResult: QueryResult<Data, Variables> = {
473484
ref: queryRef,

packages/data-connect/src/network/stream/websocket.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ export class WebSocketTransport extends AbstractDataConnectStreamTransport {
232232
*/
233233
private handleError(error?: unknown): void {
234234
logError(`DataConnect WebSocket error, closing stream: ${error}`);
235-
let reason = String(error);
235+
let reason = error ? String(error) : 'Unknown Error';
236236
if (error instanceof DataConnectError) {
237237
reason = error.message;
238238
}
@@ -299,7 +299,9 @@ export class WebSocketTransport extends AbstractDataConnectStreamTransport {
299299
} catch (err) {
300300
throw new DataConnectError(
301301
Code.OTHER,
302-
'Could not parse WebSocket message'
302+
`Could not parse WebSocket message: ${
303+
err instanceof Error ? err.message : String(err)
304+
}`
303305
);
304306
}
305307
if (typeof webSocketMessage !== 'object' || webSocketMessage === null) {

0 commit comments

Comments
 (0)