title: How to sort result set using computed fields (type-graphql)
body: <p>I'm using type-graphql and typeorm.  Is there a way to sort the result based on a computed field.  Specifically, I want to return a list of Clients and sort the list based on a computed field: &quot;sortName&quot;.  Sort name is simply a string of the clent's &quot;firstName lastName&quot; or &quot;lastName FirstName&quot;.  The decision on how to generate the sortName is based on a flag in the Company table (that way the user can control how they want to view their clients).  I just don't know how to do the sort prior to sending back to the front-end app.  I know I can create a view and do it in sql - but I'd like to know if it's possible to do in code.</p>
  <pre><code>import {Arg, Ctx, Field, FieldResolver, ID, InputType, ObjectType, Query, Resolver, Root,} from 'type-graphql'
  import {Client} from '../entities/Client'
  import {ClientNameSort, Company} from '../entities/Company'
  import {MyContext} from '../types/MyContext'
  
  @InputType()
  export class ClientsOptions {
    @Field(() =&gt; ID)
    companyId!: string
  }
  
  
  @ObjectType()
  @Resolver(Client)
  export class ClientResolver {
  
    @FieldResolver(() =&gt; String)
    async sortName(@Root() client: Client, @Ctx() { companyLoader }: MyContext) {
  
      const company:Company = await companyLoader.load(client.companyId)
  
      if (!company) {
        throw new Error(`Missing rec for Company Id ${client.companyId}`)
      }
  
      if (company.clientNameSort === ClientNameSort.FIRST_NAME) {
        return `${client.firstName} ${client.lastName} ${client.id}`
      } else {
        return `${client.lastName} ${client.firstName} ${client.id}`
      }
    }
    
  
    @Query(() =&gt; [Client])
    async clients(@Arg('options') options: ClientsOptions) {
      const clientList =  await Client.find({ where: { companyId: options.companyId } })
      return clientList;
    }
  }
  
  </code></pre>