A toolchain that integrates GraphQL Code Generator with webpack, Babel, and CLI to generate TypeScript types from GraphQL documents.
graphql-let is a toolchain that integrates GraphQL Code Generator with build tools like webpack and Babel to automatically generate TypeScript types from GraphQL documents. It solves the problem of manually managing type definitions for GraphQL queries, mutations, and subscriptions, ensuring type safety and improving developer experience with hot module replacement and minimal configuration.
Developers using GraphQL with TypeScript in projects built with webpack, Babel, or frameworks like React and Next.js, who want automated type generation and seamless integration.
Developers choose graphql-let because it reduces configuration overhead, provides multiple integration options (webpack loader, Babel plugin, CLI), and enhances productivity with features like HMR and efficient caching, making GraphQL type generation effortless.
A webpack loader / babel-plugin / babel-plugin-macros / CLI / generated file manager of GraphQL code generator.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works as a webpack loader, Babel plugin, babel-plugin-macros, CLI, and more, providing flexibility for different project setups, as detailed in the 'Entrypoints and features' section.
Automatically generates .d.ts files alongside runtime code for full type safety and IDE assistance, minimizing manual configuration, as shown in the setup examples.
Supports HMR when using the webpack loader, allowing instant updates when GraphQL documents change, which enhances developer productivity during iterations.
Uses caching and shared processes to reduce redundant GraphQL code generation and TypeScript compilation, making builds faster, as mentioned in the 'Efficiency' section.
The babel-plugin entrypoint cannot use `gql` template literals due to TypeScript limitations, requiring the less intuitive `gql('query {}')` syntax, as noted in the 'Limitations of graphql-let/babel' section.
Fragments are not fully available; importing them requires specific syntax like `# import X from './fragment.graphql'`, which can be cumbersome and is highlighted as a limitation in the FAQ.
Resolver type generation is marked as experimental, which may lead to breaking changes or instability in future updates, as cautioned in the 'Experimental feature: Resolver Types' section.