I am trying to use graphql-codegen to generate my Typescript types by pointing it at my GraphQL type definitions.
However, I appear to get the error:
Failed to load schema from code file "./src/typeDefs.ts": Syntax Error: Expected Name, found "}".
GraphQLError: Syntax Error: Expected Name, found "}".
My codegen config is pointing at my typeDefs file
schema: "./src/typeDefs.ts"
generates:
./src/types.d.ts:
config:
useIndexSignature: true
plugins:
- typescript
- typescript-resolvers
require:
- tsconfig-paths/register
And my typeDefs looks like this:
import { gql } from "apollo-server";
const typeDefs = gql`
type A { name: String }
`;
export default typeDefs;
I can get it to work if I create a schema.graphql file like so:
type A { name: String }
However, I need to be able to build some of my GraphQL enums from other sources like so:
import { gql } from "apollo-server";
import { Allergens } from "@prisma/client";
const allergens = Object.values(Allergens).join(" ");
const typeDefs = gql`
enum Allergens {
${allergens}
}
`;
So I can't have my schema in a .graphql file as I need to write it programmatically in a javascript file.
Is there a way to generate my TS types from the typeDefs generated from gql
?