Skip to content

Commit 17ad885

Browse files
authored
[graphql-request] expose operationType to SdkFunctionWrapper (#7632)
* expose `operationType` * fix: update tests
1 parent f6ec0ef commit 17ad885

File tree

4 files changed

+62
-56
lines changed

4 files changed

+62
-56
lines changed

‎.changeset/warm-seahorses-drop.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@graphql-codegen/typescript-graphql-request': minor
3+
---
4+
5+
Exposes `operationType` to graphql-request sdk middlewares.

‎packages/plugins/typescript/graphql-request/src/visitor.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export interface GraphQLRequestPluginConfig extends ClientSideBasePluginConfig {
1616
}
1717

1818
const additionalExportedTypes = `
19-
export type SdkFunctionWrapper = <T>(action: (requestHeaders?:Record<string, string>) => Promise<T>, operationName: string) => Promise<T>;
19+
export type SdkFunctionWrapper = <T>(action: (requestHeaders?:Record<string, string>) => Promise<T>, operationName: string, operationType?: string) => Promise<T>;
2020
`;
2121

2222
export class GraphQLRequestVisitor extends ClientSideBaseVisitor<
@@ -96,6 +96,7 @@ export class GraphQLRequestVisitor extends ClientSideBaseVisitor<
9696
const extraVariables: string[] = [];
9797
const allPossibleActions = this._operationsToInclude
9898
.map(o => {
99+
const operationType = o.node.operation;
99100
const operationName = o.node.name.value;
100101
const optionalVariables =
101102
!o.node.variableDefinitions ||
@@ -118,15 +119,15 @@ export class GraphQLRequestVisitor extends ClientSideBaseVisitor<
118119
}; headers: Dom.Headers; status: number; errors?: GraphQLError[] | undefined; }> {
119120
return withWrapper((wrappedRequestHeaders) => client.rawRequest<${
120121
o.operationResultType
121-
}>(${docArg}, variables, {...requestHeaders, ...wrappedRequestHeaders}), '${operationName}');
122+
}>(${docArg}, variables, {...requestHeaders, ...wrappedRequestHeaders}), '${operationName}', '${operationType}');
122123
}`;
123124
} else {
124125
return `${operationName}(variables${optionalVariables ? '?' : ''}: ${
125126
o.operationVariablesTypes
126127
}, requestHeaders?: Dom.RequestInit["headers"]): Promise<${o.operationResultType}> {
127128
return withWrapper((wrappedRequestHeaders) => client.request<${
128129
o.operationResultType
129-
}>(${docVarName}, variables, {...requestHeaders, ...wrappedRequestHeaders}), '${operationName}');
130+
}>(${docVarName}, variables, {...requestHeaders, ...wrappedRequestHeaders}), '${operationName}', '${operationType}');
130131
}`;
131132
}
132133
})
@@ -135,7 +136,7 @@ export class GraphQLRequestVisitor extends ClientSideBaseVisitor<
135136

136137
return `${additionalExportedTypes}
137138
138-
const defaultWrapper: SdkFunctionWrapper = (action, _operationName) => action();
139+
const defaultWrapper: SdkFunctionWrapper = (action, _operationName, _operationType) => action();
139140
${extraVariables.join('\n')}
140141
export function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) {
141142
return {

0 commit comments

Comments
 (0)