@baeta/extension-complexity
Enumerations
ComplexityErrorKind
Types of complexity validation errors that can occur during query analysis.
Enumeration Members
Enumeration Member | Value | Description |
---|---|---|
|
|
Query exceeds maximum allowed breadth (fields per level) |
|
|
Query exceeds total complexity score limit |
|
|
Query exceeds maximum allowed depth |
Classes
ComplexityError
Thrown when a query exceeds the complexity limits.
Extends
GraphQLError
Constructors
new ComplexityError()
new ComplexityError(
message
,options
?):ComplexityError
Parameters
Parameter | Type | Default value |
---|---|---|
|
|
|
|
|
|
Returns
Overrides
GraphQLError.constructor
Properties
Property | Modifier | Type | Description | Inherited from |
---|---|---|---|---|
|
|
|
Extension fields to add to the formatted error. |
|
|
|
|
An array of Errors during validation often contain multiple locations, for example to point out two things with the same name. Errors during execution include a single location, the field which produced the error. Enumerable, and appears in the result of JSON.stringify(). |
|
|
|
|
‐ |
|
|
|
|
‐ |
|
|
|
|
An array of GraphQL AST Nodes corresponding to this error. |
|
|
|
|
The original error thrown from a field resolver during execution. |
|
|
|
|
An array describing the JSON-path into the execution response which corresponds to this error. Only included for errors during execution. Enumerable, and appears in the result of JSON.stringify(). |
|
|
|
|
An array of character offsets within the source GraphQL document which correspond to this error. |
|
|
|
|
The source GraphQL document for the first location of this error. Note that if this Error represents more than one node, the source may not represent nodes after the first node. |
|
|
|
|
‐ |
|
|
|
|
‐ |
|
Accessors
[toStringTag]
Get Signature
get [toStringTag]():
string
Returns
string
Inherited from
GraphQLError.[toStringTag]
Methods
toJSON()
toJSON():
GraphQLFormattedError
Returns
GraphQLFormattedError
Inherited from
GraphQLError.toJSON
toString()
toString():
string
Returns a string representation of an object.
Returns
string
Inherited from
GraphQLError.toString
Interfaces
ComplexityExtensionOptions<Context>
Configuration options for the complexity extension.
Type Parameters
Type Parameter |
---|
|
Properties
Property | Type | Default value | Description |
---|---|---|---|
|
|
Custom error message generator | |
|
|
|
Base complexity score for fields |
|
|
|
Multiplier applied to list fields |
|
|
|
Static limits or function to determine limits based on context |
ComplexityLimit
Configuration for query complexity limits.
Properties
Property | Type | Description |
---|---|---|
|
|
Maximum allowed fields per level |
|
|
Maximum allowed total complexity score |
|
|
Maximum allowed query depth |
Type Aliases
FieldSettings
FieldSettings:
object
Configuration for field complexity calculation.
Type declaration
Name | Type |
---|---|
|
|
|
|
GetComplexityError()
GetComplexityError: (
kind
,limits
,results
) =>GraphQLError
Function type for creating custom complexity error messages.
Parameters
Parameter | Type | Description |
---|---|---|
|
The type of complexity limit that was exceeded | |
|
|
The maximum allowed value |
|
|
The actual value that exceeded the limit |
Returns
GraphQLError
A GraphQL error with a custom message
GetComplexityLimit<Context>
GetComplexityLimit<
Context
>:ComplexityLimit
| (ctx
) =>ComplexityLimit
|Promise
<ComplexityLimit
>
Function to determine complexity limits, can be static or context-based.
Type Parameters
Type Parameter |
---|
|
GetFieldSettings()<Context, Args>
GetFieldSettings<
Context
,Args
>: (params
) =>FieldSettings
|false
Function to determine complexity settings for a field. Returns either field settings or false to disable complexity calculation.
Type Parameters
Type Parameter |
---|
|
|
Parameters
Parameter | Type | Description |
---|---|---|
|
|
Object containing field arguments and context |
Returns
FieldSettings
| false
Field settings object or false
GetFieldSettingsArgs<Context, Args>
GetFieldSettingsArgs<
Context
,Args
>:object
Arguments passed to field settings functions.
Type Parameters
Type Parameter |
---|
|
|
Type declaration
Name | Type | Description |
---|---|---|
|
|
Arguments passed to the GraphQL field |
|
|
Request context |
Variables
ComplexityErrorCode
const
ComplexityErrorCode:"COMPLEXITY_ERROR"
='COMPLEXITY_ERROR'
Complexity error code
Functions
complexityExtension()
complexityExtension<
Ctx
>(options
?): () =>Extension
Creates a complexity analysis extension for GraphQL queries.
Type Parameters
Type Parameter |
---|
|
Parameters
Parameter | Type | Description |
---|---|---|
|
Configuration options for complexity analysis |
Returns
Function
Extension factory function
Returns
Extension
Example
const complexity = complexityExtension<Context>({
defaultComplexity: 1,
defaultListMultiplier: 10,
limit: {
depth: 5,
breadth: 10,
complexity: 100,
},
});