Skip to content

Commit a1d3004

Browse files
authored
Merge branch 'master' into dependabot/npm_and_yarn/path-parse-1.0.7
2 parents 1c7e7f3 + e19c2d7 commit a1d3004

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/utils.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import {
77
OperationDefinitionNode,
88
buildClientSchema,
99
printSchema,
10-
getIntrospectionQuery
10+
getIntrospectionQuery,
11+
FieldNode
1112
} from 'graphql';
1213
import { parse } from 'graphql/language/parser';
1314
import { IVueOOPOptions } from './index';
@@ -130,11 +131,16 @@ export function stripTypenameDefault<T>(obj: T): Omit<T, "__typename"> {
130131
* @returns {Promise<*>}
131132
*/
132133
export async function performSafeRequestGraphql(query: DocumentNode, variables = {}, providerName = 'default') {
133-
const queryName = query.definitions.map(def => (<OperationDefinitionNode>def).name).find(def => def.kind === 'Name').value;
134+
const operationDefinition = query.definitions.find(def => (<OperationDefinitionNode>def).kind === 'OperationDefinition') as OperationDefinitionNode;
135+
const queryName = operationDefinition?.name.value;
136+
134137
const isQuery = (<OperationDefinitionNode>query.definitions.find(def => def.kind === 'OperationDefinition')).operation === 'query';
135138
if (isQuery) {
139+
const firstField = operationDefinition?.selectionSet?.selections?.find(s => s.kind === 'Field') as FieldNode;
140+
const name = firstField?.name.value;
141+
136142
return performGqlQuery(query, stripTypename(variables), providerName)
137-
.then((value: ApolloQueryResult<unknown>) => value.data[queryName]);
143+
.then((value: ApolloQueryResult<unknown>) => name ? value.data[name] : value.data);
138144
}
139145

140146
const isSubscription = (<OperationDefinitionNode>query.definitions.find(def => def.kind === 'OperationDefinition')).operation === 'subscription';

0 commit comments

Comments
 (0)