Skip to content

Commit

Permalink
Fix type of extensions in protocolErrors (#12321)
Browse files Browse the repository at this point in the history
  • Loading branch information
jerelmiller authored Jan 30, 2025
1 parent 5ae1215 commit daa4f33
Show file tree
Hide file tree
Showing 20 changed files with 65 additions and 173 deletions.
10 changes: 2 additions & 8 deletions .api-reports/api-report-core.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,10 +200,7 @@ export class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -219,10 +216,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-errors.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,7 @@ export class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -50,10 +47,7 @@ export interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
6 changes: 1 addition & 5 deletions .api-reports/api-report-link_error.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import type { DocumentNode } from 'graphql';
import type { FormattedExecutionResult } from 'graphql';
import type { GraphQLErrorExtensions } from 'graphql';
import type { GraphQLFormattedError } from 'graphql';
import { Observable } from 'zen-observable-ts';
import type { Observer } from 'zen-observable-ts';
Expand Down Expand Up @@ -86,10 +85,7 @@ export interface ErrorResponse {
networkError?: NetworkError;
// (undocumented)
operation: Operation;
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
// (undocumented)
response?: FormattedExecutionResult;
}
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-react.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,10 +257,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -276,10 +273,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-react_components.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,10 +235,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -254,10 +251,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-react_context.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,10 +255,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -274,10 +271,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-react_hoc.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,10 +234,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -253,10 +250,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-react_hooks.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,10 +233,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -252,10 +249,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-react_internal.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,10 +233,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -252,10 +249,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-react_ssr.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,10 +234,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -253,10 +250,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-testing.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,10 +234,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -253,10 +250,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-testing_core.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,10 +233,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -252,10 +249,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report-utilities.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,10 +248,7 @@ class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -267,10 +264,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
10 changes: 2 additions & 8 deletions .api-reports/api-report.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,10 +223,7 @@ export class ApolloError extends Error {
// (undocumented)
networkError: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand All @@ -242,10 +239,7 @@ interface ApolloErrorOptions {
// (undocumented)
networkError?: Error | ServerParseError | ServerError | null;
// (undocumented)
protocolErrors?: ReadonlyArray<{
message: string;
extensions?: GraphQLErrorExtensions[];
}>;
protocolErrors?: ReadonlyArray<GraphQLFormattedError>;
}

// @public (undocumented)
Expand Down
5 changes: 5 additions & 0 deletions .changeset/curvy-seahorses-walk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@apollo/client": patch
---

Fix type of `extensions` in `protocolErrors` for `ApolloError` and the `onError` link. According to the [multipart HTTP subscription protocol](https://www.apollographql.com/docs/graphos/routing/operations/subscriptions/multipart-protocol), fatal tranport errors follow the [GraphQL error format](https://spec.graphql.org/draft/#sec-Errors.Error-Result-Format) which require `extensions` to be a map as its value instead of an array.
16 changes: 6 additions & 10 deletions src/__tests__/__snapshots__/graphqlSubscriptions.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,9 @@ ApolloError {
exports[`GraphQL Subscriptions should throw an error if the result has protocolErrors on it 1`] = `
ApolloError {
"cause": Object {
"extensions": Array [
Object {
"code": "WEBSOCKET_MESSAGE_ERROR",
},
],
"extensions": Object {
"code": "WEBSOCKET_MESSAGE_ERROR",
},
"message": "cannot read message from websocket",
},
"clientErrors": Array [],
Expand All @@ -55,11 +53,9 @@ ApolloError {
"networkError": null,
"protocolErrors": Array [
Object {
"extensions": Array [
Object {
"code": "WEBSOCKET_MESSAGE_ERROR",
},
],
"extensions": Object {
"code": "WEBSOCKET_MESSAGE_ERROR",
},
"message": "cannot read message from websocket",
},
],
Expand Down
Loading

0 comments on commit daa4f33

Please sign in to comment.