graphql-cli-generate-fragments
graphql-cli-generate-fragments copied to clipboard
Is there a way to make this work with `apollo generate:codegen`?
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.
Maybe if codegen support graphql-import it would work. https://github.com/apollographql/apollo-cli/issues/495
@vjpr I intend to re-write to work with graphql codegen - which I think wraps apollo generate:codegen.
Any news on this?
up
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