[GH-ISSUE #89] Cannot create custom Mutation or Subscription Adapter #57

Open
opened 2026-03-03 00:03:01 +03:00 by kerem · 0 comments
Owner

Originally created by @yargyropoulos on GitHub (Dec 7, 2023).
Original GitHub issue: https://github.com/atulmy/gql-query-builder/issues/89

In index.ts, the type for a query adapter is any, while for the mutation or subscription adapters, they are limited to IMutationAdapter or ISubscriptionAdapter

function queryOperation(
  options: IQueryBuilderOptions | IQueryBuilderOptions[],
  adapter?: any,
  config?: any
)
...
function mutationOperation(
  options: IQueryBuilderOptions | IQueryBuilderOptions[],
  adapter?: IMutationAdapter,
  config?: any
) 
...
function subscriptionOperation(
  options: IQueryBuilderOptions | IQueryBuilderOptions[],
  adapter?: ISubscriptionAdapter
)

If I try to create my custom adapters, I will be able to create a Query Adapter without issues, but for a Mutation Adapter like this:

    const query = buildMutation({
        ...myOptions
    }, MyMutationAdapter);

I will get a compilation error like this: Type 'typeof MyMutationAdapter' is missing the following properties from type 'IMutationAdapter': mutationBuilder, mutationsBuilder , even though MyMutationAdapter implements both methods

Originally created by @yargyropoulos on GitHub (Dec 7, 2023). Original GitHub issue: https://github.com/atulmy/gql-query-builder/issues/89 In `index.ts`, the type for a query adapter is `any`, while for the mutation or subscription adapters, they are limited to IMutationAdapter or ISubscriptionAdapter ``` function queryOperation( options: IQueryBuilderOptions | IQueryBuilderOptions[], adapter?: any, config?: any ) ... function mutationOperation( options: IQueryBuilderOptions | IQueryBuilderOptions[], adapter?: IMutationAdapter, config?: any ) ... function subscriptionOperation( options: IQueryBuilderOptions | IQueryBuilderOptions[], adapter?: ISubscriptionAdapter ) ``` If I try to create my custom adapters, I will be able to create a Query Adapter without issues, but for a Mutation Adapter like this: ``` const query = buildMutation({ ...myOptions }, MyMutationAdapter); ``` I will get a compilation error like this: `Type 'typeof MyMutationAdapter' is missing the following properties from type 'IMutationAdapter': mutationBuilder, mutationsBuilder` , even though MyMutationAdapter implements both methods
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/gql-query-builder#57
No description provided.