eddeee888 / graphql-code-generator-plugins

List of GraphQL Code Generator plugins that complements the official plugins.
MIT License
44 stars 10 forks source link

[FEAT] Support schemas created using `graphql` package #264

Open eddeee888 opened 2 months ago

eddeee888 commented 2 months ago

Is your feature request related to a problem? Please describe.

Problem: Schemas created using graphql is being ignored by Server Preset.

For example, consider this file:

import {
  GraphQLEnumType,
  GraphQLObjectType,
  GraphQLSchema,
  GraphQLString,
} from "graphql";

const languageType = new GraphQLEnumType({
  name: "ISOLanguage",
  values: {
    EN: {
      value: "en",
    },
    ES: {
      value: "es",
    },
    RU: {
      value: "ru",
    },
  },
});
const userType = new GraphQLObjectType({
  name: "User",
  fields: {
    id: { type: GraphQLString },
    name: { type: GraphQLString },
    language: { type: languageType },
  },
});

// Define the Query type
const queryType = new GraphQLObjectType({
  name: "Query",
  fields: {
    user: {
      type: userType,
      // `args` describes the arguments that the `user` query accepts
      args: {
        id: { type: GraphQLString },
      },
      resolve: (_, { id }) => {
        return id;
      },
    },
  },
});

const schema = new GraphQLSchema({
  query: queryType,
});

export { schema };
export default schema;

Running codegen with Server Preset results in the following error:

Empty Sources. Make sure schema files are parsed correctly.

Describe the solution you'd like

Support schemas created from graphql package

Related: https://github.com/dotansimha/graphql-code-generator/issues/9932