fix: return 0 complexity for introspection fields (#4549)
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
|||||||
import { Plugin } from '@nestjs/apollo';
|
import { Plugin } from '@nestjs/apollo';
|
||||||
import { GraphQLError } from 'graphql';
|
import { GraphQLError } from 'graphql';
|
||||||
import {
|
import {
|
||||||
|
ComplexityEstimatorArgs,
|
||||||
fieldExtensionsEstimator,
|
fieldExtensionsEstimator,
|
||||||
getComplexity,
|
getComplexity,
|
||||||
simpleEstimator,
|
simpleEstimator,
|
||||||
@@ -29,6 +30,14 @@ export class GQLComplexityPlugin implements ApolloServerPlugin {
|
|||||||
query: document,
|
query: document,
|
||||||
variables: request.variables,
|
variables: request.variables,
|
||||||
estimators: [
|
estimators: [
|
||||||
|
// Custom estimator for introspection fields
|
||||||
|
(args: ComplexityEstimatorArgs) => {
|
||||||
|
const fieldName = args.field.name;
|
||||||
|
if (fieldName.startsWith('__')) {
|
||||||
|
return 0; // Return 0 complexity for introspection fields
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
},
|
||||||
fieldExtensionsEstimator(),
|
fieldExtensionsEstimator(),
|
||||||
simpleEstimator({ defaultComplexity: 1 }),
|
simpleEstimator({ defaultComplexity: 1 }),
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user