Relay'd Query
Similarly we might need to paginate a Query field using AutoRelay but have complete control over the business logic and fetching. AutoRelay offers @RelayedQuery for that.
@Resolver(of => User)
export class UserResolver {
constructor(
protected readonly userRepository: Repository<User>
)
@RelayedQuery(() => User)
async users(
@RelayLimitOffset() {limit, offset}: RelayLimitOffsetArgs
): Promise<[number, User[]]> {
return this.userRepository.findAndCount({
where: {
// any business logic you might have
},
skip: offset,
take: limit
})
}
}Notice the API is exactly the same as @RelayedFieldResolver. Just like in vanilla type-graphql @RelayedQuery is nothing more than an alias for calling @RelayedFieldResolver on a field of the Query Object.
Last updated
Was this helpful?