Skip to content

Commit

Permalink
drop ExecutionPatchResult since it's not official or really used
Browse files Browse the repository at this point in the history
  • Loading branch information
enisdenjo committed Jan 30, 2025
1 parent 595189c commit 747c01c
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 58 deletions.
7 changes: 7 additions & 0 deletions .changeset/popular-jobs-deliver.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'graphql-ws': patch
---

Drop `ExecutionPatchResult` and `FormattedExecutionPatchResult` types

Neither of the types are officially supported (yet) and the future versions of graphql-js adding support for stream/defer will a different signature for the incremental execution result.
11 changes: 2 additions & 9 deletions src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {
ConnectionAckMessage,
ConnectionInitMessage,
Disposable,
FormattedExecutionPatchResult,
FormattedExecutionResult,
GRAPHQL_TRANSPORT_WS_PROTOCOL,
ID,
Expand Down Expand Up @@ -422,21 +421,15 @@ export interface Client extends Disposable {
*/
subscribe<Data = Record<string, unknown>, Extensions = unknown>(
payload: SubscribePayload,
sink: Sink<
| FormattedExecutionResult<Data, Extensions>
| FormattedExecutionPatchResult<Data, Extensions>
>,
sink: Sink<FormattedExecutionResult<Data, Extensions>>,
): () => void;
/**
* Subscribes and iterates over emitted results from the WebSocket
* through the returned async iterator.
*/
iterate<Data = Record<string, unknown>, Extensions = unknown>(
payload: SubscribePayload,
): AsyncIterableIterator<
| FormattedExecutionResult<Data, Extensions>
| FormattedExecutionPatchResult<Data, Extensions>
>;
): AsyncIterableIterator<FormattedExecutionResult<Data, Extensions>>;
/**
* Terminates the WebSocket abruptly and immediately.
*
Expand Down
28 changes: 1 addition & 27 deletions src/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,19 +145,6 @@ export interface ExecutionResult<
extensions?: Extensions | undefined;
}

/** @category Common */
export interface ExecutionPatchResult<
Data = unknown,
Extensions = Record<string, unknown>,
> {
errors?: ReadonlyArray<GraphQLError> | undefined;
data?: Data | null | undefined;
path?: ReadonlyArray<string | number> | undefined;
label?: string | undefined;
hasNext: boolean;
extensions?: Extensions | undefined;
}

/** @category Common */
export interface FormattedExecutionResult<
Data = Record<string, unknown>,
Expand All @@ -169,24 +156,11 @@ export interface FormattedExecutionResult<
extensions?: Extensions | undefined;
}

/** @category Common */
export interface FormattedExecutionPatchResult<
Data = unknown,
Extensions = Record<string, unknown>,
> {
errors?: ReadonlyArray<GraphQLFormattedError> | undefined;
data?: Data | null | undefined;
path?: ReadonlyArray<string | number> | undefined;
label?: string | undefined;
hasNext: boolean;
extensions?: Extensions | undefined;
}

/** @category Common */
export interface NextMessage {
readonly id: ID;
readonly type: MessageType.Next;
readonly payload: FormattedExecutionResult | FormattedExecutionPatchResult;
readonly payload: FormattedExecutionResult;
}

/** @category Common */
Expand Down
19 changes: 7 additions & 12 deletions src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ import {
import {
CloseCode,
ConnectionInitMessage,
ExecutionPatchResult,
ExecutionResult,
FormattedExecutionPatchResult,
GRAPHQL_TRANSPORT_WS_PROTOCOL,
ID,
JSONMessageReplacer,
Expand All @@ -42,12 +40,12 @@ import { isAsyncGenerator, isAsyncIterable, isObject } from './utils';
/** @category Server */
export type OperationResult =
| Promise<
| AsyncGenerator<ExecutionResult | ExecutionPatchResult>
| AsyncIterable<ExecutionResult | ExecutionPatchResult>
| AsyncGenerator<ExecutionResult>
| AsyncIterable<ExecutionResult>
| ExecutionResult
>
| AsyncGenerator<ExecutionResult | ExecutionPatchResult>
| AsyncIterable<ExecutionResult | ExecutionPatchResult>
| AsyncGenerator<ExecutionResult>
| AsyncIterable<ExecutionResult>
| ExecutionResult;

/**
Expand Down Expand Up @@ -384,13 +382,10 @@ export interface ServerOptions<
id: string,
payload: SubscribePayload,
args: ExecutionArgs,
result: ExecutionResult | ExecutionPatchResult,
result: ExecutionResult,
) =>
| Promise<
FormattedExecutionResult | FormattedExecutionPatchResult | void
>
| Promise<FormattedExecutionResult | void>
| FormattedExecutionResult
| FormattedExecutionPatchResult
| void);
/**
* The complete callback is executed after the
Expand Down Expand Up @@ -698,7 +693,7 @@ export function makeServer<

const emit = {
next: async (
result: ExecutionResult | ExecutionPatchResult,
result: ExecutionResult,
{ id, payload }: SubscribeMessage,
args: ExecutionArgs,
) => {
Expand Down
12 changes: 2 additions & 10 deletions tests/client.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import {
} from '../src/client';
import {
CloseCode,
FormattedExecutionPatchResult,
FormattedExecutionResult,
MessageType,
parseMessage,
Expand Down Expand Up @@ -47,11 +46,7 @@ function noop(): void {

interface TSubscribe<T> {
waitForNext: (
test?: (
value:
| FormattedExecutionResult<T, unknown>
| FormattedExecutionPatchResult<T, unknown>,
) => void,
test?: (value: FormattedExecutionResult<T, unknown>) => void,
expire?: number,
) => Promise<void>;
waitForError: (
Expand All @@ -67,10 +62,7 @@ function tsubscribe<T = unknown>(
payload: SubscribePayload,
): TSubscribe<T> {
const emitter = new EventEmitter();
const results: (
| FormattedExecutionResult<T, unknown>
| FormattedExecutionPatchResult<T, unknown>
)[] = [];
const results: FormattedExecutionResult<T, unknown>[] = [];
let error: unknown,
completed = false;
const dispose = client.subscribe<T>(payload, {
Expand Down

0 comments on commit 747c01c

Please sign in to comment.