Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes some relation resolvers using
PrismaSelect
from PalJS.The
PrismaSelect
class is able to extract fields required fromGraphQLResolveInfo
.This one is working fine, but one problem of this library is the lack of type support prisma-tools/#260.
Because Prisma doesn't export a map that makes a relation between model name and select interfaces, I've added a script that generates this type mapping.
This one is called each time we regenerate the Prisma client.
The API in place uses a decorator to extract select from GraphQLResolveInfo.
This decorator calls
PrismaSelect
under the hood.In the above example, we simply extract the select from the prismaSelect class using value.
Here, because we're using pagination, we need to let
PrismaSelect
know from where the select needs to be extracted withvalueOf
.valueOf
can also be used with a second argument specifying a modelName like this:valueOf('edges.node', 'PipelineStage')
. That way, we're extracting the select ofPipelineStage
only, which is a relation ofPipeline
.