doug-martin / nestjs-query

Easy CRUD for GraphQL.

Home Page:https://doug-martin.github.io/nestjs-query

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Question] Serverless integration with nestjs and graphql throws error - Cannot determine a GraphQL output type for the "id".

aditijain-2 opened this issue · comments

Setup:
NestJs [8.1.6]
TypeOrm [^0.2.41]
Nestjs-Query [^0.30.0]
PostgreSQL

I am trying to achieve serverless integration in our application by referring - Nestjs serverless docs

If I start the lambda function locally, using commands -

npm run build 
npx serverless offline 

The GraphQL playground loads but crashes immediately.
It throws an error - Error: Cannot determine a GraphQL output type for the "id". Make sure your class is decorated with an appropriate decorator.
However, when I am running the application without serverless, it works.

I have added @ObjectType() decorator to the class as well.

DTO class -

@ObjectType('Section')
@QueryOptions({
  pagingStrategy: PagingStrategies.OFFSET,
  enableTotalCount: true,
})
export class SectionDTO {
  @Field(() => ID)
  id!: string;

  @FilterableField()
  name!: string;

  @FilterableField(() => GraphQLISODateTime)
  created!: Date;

  @FilterableField(() => GraphQLISODateTime)
  updated!: Date;
}

Entity Class -

import {
  BaseEntity,
  Column,
  CreateDateColumn,
  Entity,
  OneToMany,
  PrimaryGeneratedColumn,
  UpdateDateColumn,
} from 'typeorm';
import { Field, ID, ObjectType } from '@nestjs/graphql';

@Entity('section')
@ObjectType()
export class SectionEntity extends BaseEntity {
  @Field(() => ID)
  @PrimaryGeneratedColumn('uuid')
  id!: string;

  @Column()
  name!: string;

  @CreateDateColumn()
  created!: Date;

  @UpdateDateColumn()
  updated!: Date;
}

How can I resolve this issue?

Facing the similar problem

I'd try using @IDField instead