graphql-cli-generate-fragments icon indicating copy to clipboard operation
graphql-cli-generate-fragments copied to clipboard

Is there a way to make this work with `apollo generate:codegen`?

Open vjpr opened this issue 7 years ago • 5 comments


import {RouteModelFragment} from 'fragments/foo.fragments'

const query = gql`
  query maintenanceRoutes {
    routes {
      ...RouteModelFragment
    }
    zones {
      id
      zoneName
    }
  }
  
  ${RouteModelFragment}
`

$ apollo codegen:generate --schema=schema.graphql --target=flow --outputFlat --queries='foo.js' $OUT_DIR/types

Unknown fragment "RouteModelFragment".

ToolError: Validation of GraphQL query document failed
    at Object.validateQueryDocument (~/nvm/versions/node/v8.9.0/pnpm-global/1/node_modules/.registry.npmjs.org/apollo/1.4.0/node_modules/apollo/lib/validation.js:17:15)
    at Object.generate [as default] (~/nvm/versions/node/v8.9.0/pnpm-global/1/node_modules/.registry.npmjs.org/apollo/1.4.0/node_modules/apollo/lib/generate.js:19:18)
    at Task.task (~/nvm/versions/node/v8.9.0/pnpm-global/1/node_modules/.registry.npmjs.org/apollo/1.4.0/node_modules/apollo/lib/commands/codegen/generate.js:152:60)
    at Promise.resolve.then.then.skipped (~/nvm/versions/node/v8.9.0/pnpm-global/1/node_modules/.registry.npmjs.org/listr/0.14.1/node_modules/listr/lib/task.js:167:30)
    at <anonymous>

I wonder if apollo codegen can reference fragments from its schema so we don't need the import?

This issue means having to choose between templated gql queries or query type generation.

graphql-cli-generate-fragments may still be useful for copy-pasting in the generated fragments instead of having to type them.

And maybe its better to keep gql queries static so IDE integrations can work properly. Although the Apollo docs suggest importing fragments into your queries here: https://www.apollographql.com/docs/react/advanced/fragments.html.

vjpr avatar Jul 19 '18 19:07 vjpr

Maybe if codegen support graphql-import it would work. https://github.com/apollographql/apollo-cli/issues/495

vjpr avatar Jul 19 '18 19:07 vjpr

@vjpr I intend to re-write to work with graphql codegen - which I think wraps apollo generate:codegen.

develomark avatar Jul 23 '18 16:07 develomark

Any news on this?

ovidb avatar May 09 '19 11:05 ovidb

up

sascha1337 avatar Sep 18 '20 13:09 sascha1337

Check your includes path like: apollo codegen:generate --localSchemaFile=schema.json --target=typescript --includes=src/gql/**/*.gql.ts --outputFlat=src/gql/types --tagName=gql --addTypename --globalTypesFile=@types/globalTypes.d.ts

predaytor avatar Mar 19 '21 21:03 predaytor