What is @graphql-codegen/core?
@graphql-codegen/core is a powerful tool for generating code from GraphQL schemas and operations. It allows developers to automate the creation of type-safe code, reducing the risk of errors and improving development efficiency.
What are @graphql-codegen/core's main functionalities?
Generate TypeScript Types
This feature allows you to generate TypeScript types from a GraphQL schema. The code sample demonstrates how to use the @graphql-codegen/core package along with the TypeScript plugin to generate type definitions.
const { generate } = require('@graphql-codegen/core');
const typescriptPlugin = require('@graphql-codegen/typescript');
const schema = `
type Query {
hello: String
}
`;
const config = {
documents: [],
config: {},
filename: 'types.ts',
schema: schema,
plugins: [
{ typescript: {} }
],
pluginMap: {
typescript: typescriptPlugin
}
};
async function generateTypes() {
const output = await generate(config, true);
console.log(output);
}
generateTypes();
Generate React Apollo Hooks
This feature allows you to generate React Apollo hooks from a GraphQL schema and operations. The code sample demonstrates how to use the @graphql-codegen/core package along with the TypeScript and React Apollo plugins to generate hooks.
const { generate } = require('@graphql-codegen/core');
const typescriptPlugin = require('@graphql-codegen/typescript');
const reactApolloPlugin = require('@graphql-codegen/typescript-react-apollo');
const schema = `
type Query {
hello: String
}
`;
const documents = `
query GetHello {
hello
}
`;
const config = {
documents: [{ document: documents }],
config: {},
filename: 'hooks.ts',
schema: schema,
plugins: [
{ typescript: {} },
{ 'typescript-react-apollo': {} }
],
pluginMap: {
typescript: typescriptPlugin,
'typescript-react-apollo': reactApolloPlugin
}
};
async function generateHooks() {
const output = await generate(config, true);
console.log(output);
}
generateHooks();
Other packages similar to @graphql-codegen/core
graphql-code-generator
graphql-code-generator is a comprehensive tool for generating code from GraphQL schemas and operations. It offers a wide range of plugins and supports multiple languages and frameworks. Compared to @graphql-codegen/core, it provides a more extensive set of features and integrations.
apollo-codegen
apollo-codegen is a tool specifically designed for generating code for Apollo Client. It supports TypeScript and Flow and can generate type definitions and query/mutation hooks. While it is more focused on Apollo Client, @graphql-codegen/core offers a broader range of plugins and use cases.