Relay'd Relationship
Automatically relaying a relationship between two entities in your ORM of choice
Making a relationship relayable.
Let's say you currently have two entities / graphql objects, User
and Recipe
. A recipe is always linked to an user, and a given user can have multiple recipes. Your classes might look like that :
With some custom logic (either lazy-loading or field resolvers) to fetch User.recipes / Recipe.user.
With AutoRelay, we're gonna replace all that logic with a single decorator, @RelayedConnection
.
Our User
will now look like this :
This will auto-magically create a few GraphQL types, such as UserRecipeConnection
and UserRecipeEdge
. Our User.recipes field now takes Relay's ConnectionArguments and returns UserRecipeConnection!
.
Our TypeORM integration gets the repository for Recipe
, translates the ConnectionArguments to an offset/limit tuple and fetches recipes connected to this User
.
Default sorting
@RelayedConnection
can optionally accept an order parameter in its options, that will allow you to fetch while sorting on the column of your entities. For example, if we wanted to get our recipes by best ratings :
If you need more in depth sorting, check-out the docs for @auto-relay/sorting
Last updated
Was this helpful?