-
-
Notifications
You must be signed in to change notification settings - Fork 461
Description
Describe the bug
Since version 15.12 of webonyx/graphql-php
there has been a new property on the ResolveInfo
class, unaliasedPath
.
This field is not preserved when building the child ResolveInfo
class used by Lighthouse.
Expected behavior/Solution
The unaliasedPath
property can be passed up through the parent constructor.
I am happy to create a PR, but I just want some guidance on how it should be done regarding the versioning.
Option 1:
Pass the unaliasedPath
constructor parameter to the parent without checking, and force people to use the correct version of webonyx/graphql
:
Nuwave\Lighthouse\Execution\ResolveInfo.php
public function __construct(
BaseResolveInfo $baseResolveInfo,
public ArgumentSet $argumentSet,
) {
parent::__construct(
fieldDefinition: $baseResolveInfo->fieldDefinition,
fieldNodes: $baseResolveInfo->fieldNodes,
parentType: $baseResolveInfo->parentType,
path: $baseResolveInfo->path,
schema: $baseResolveInfo->schema,
fragments: $baseResolveInfo->fragments,
rootValue: $baseResolveInfo->rootValue,
operation: $baseResolveInfo->operation,
variableValues: $baseResolveInfo->variableValues,
+ unaliasedPath: $baseResolveInfo->unaliasedPath,
);
}
composer.json
"require": {
...
- "webonyx/graphql-php": "^15"
+ "webonyx/graphql-php": "^15.12.0"
},
Option 2
Check if the property is set so it works with older versions. Something like this:
Nuwave\Lighthouse\Execution\ResolveInfo.php
public function __construct(
BaseResolveInfo $baseResolveInfo,
public ArgumentSet $argumentSet,
) {
parent::__construct(
fieldDefinition: $baseResolveInfo->fieldDefinition,
fieldNodes: $baseResolveInfo->fieldNodes,
parentType: $baseResolveInfo->parentType,
path: $baseResolveInfo->path,
schema: $baseResolveInfo->schema,
fragments: $baseResolveInfo->fragments,
rootValue: $baseResolveInfo->rootValue,
operation: $baseResolveInfo->operation,
variableValues: $baseResolveInfo->variableValues,
+ ...(isset($baseResolveInfo->unaliasedPath)
+ ? ['unaliasedPath' => $baseResolveInfo->unaliasedPath]
+ : [])
);
}