import { Query, Arg, Resolver } from 'type-graphql'; import { getRepository } from 'typeorm'; import { ProductCategory } from '@/entities'; import { connectionFromQuery } from '../shared/pagination/utils'; import { ProductCategoriesConnection } from './types'; @Resolver(ProductCategory) export class ProductCategoryResolver { @Query(() => ProductCategoriesConnection, { nullable: true }) async categories( @Arg('first', { nullable: true }) first?: number, @Arg('last', { nullable: true }) last?: number, @Arg('before', { nullable: true }) before?: string, @Arg('after', { nullable: true }) after?: string ): Promise { const query = getRepository(ProductCategory).createQueryBuilder('ProductCategory'); return connectionFromQuery( { first, last, before, after, }, query ); } }