Apollo-tooling: Add an option to remove underscores from generated interfaces.

Created on 18 Jul 2019  路  4Comments  路  Source: apollographql/apollo-tooling

Codegen generates interfaces with underscores.

For example: myQuery_foo_bar.

This default behaviour causes problems when using ESLint camelcase rule -https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/camelcase.md.

Importing these interfaces triggers a linting error.

I'd suggest adding --no-underscores flag that would cause interfaces to be generated without underscores. For example: myQueryFooBar.

馃 codegen

Most helpful comment

We have the same issue. I much prefer the output from apollo-codegen than from graphql-code-generator as it is easier to use query results in nested react components but the underscores break linting and style requirements for our project.

Would be great if there was an option to use camelCase instead of underscores.

All 4 comments

Hi,
I got the same issue here... it's a tiny detail but it's actually pretty annoying.

Seems odd to me to add so much tooling when the main feature is already available for such an option.

Are you open for PR?
At least for typescript codegen?

We have the same issue. I much prefer the output from apollo-codegen than from graphql-code-generator as it is easier to use query results in nested react components but the underscores break linting and style requirements for our project.

Would be great if there was an option to use camelCase instead of underscores.

Having the ability to pick a "namingConvention" such as: _Underscores_ (aka _snake_case_), _camelCase_, _PascalCase_, _kebab-case_ and any other common variation I may have missed, would be ideal.

e.g:

// apollo.config.js
module.exports = {
  client: {
    service: {
      name: "My Client",
      namingConvention: "camel", // default: "snake" optional: "camel" "pascal" "kebab" etc.
    },
  },
};

or

 apollo client:codegen --target typescript --namingConvention camel
Was this page helpful?
0 / 5 - 0 ratings