Releases: dotansimha/graphql-code-generator
May 24, 2023
@graphql-codegen/[email protected]
Major Changes
Patch Changes
-
#9449
4d9ea1a5a
Thanks @n1ru4l! - dependencies updates:- Updated dependency
graphql-config@^5.0.0
↗︎ (from^4.5.0
, independencies
)
- Updated dependency
-
#9449
4d9ea1a5a
Thanks @n1ru4l! - dependencies updates:- Updated dependency
@graphql-tools/apollo-engine-loader@^8.0.0
↗︎ (from^7.3.6
, independencies
) - Updated dependency
@graphql-tools/code-file-loader@^8.0.0
↗︎ (from^7.3.17
, independencies
) - Updated dependency
@graphql-tools/git-loader@^8.0.0
↗︎ (from^7.2.13
, independencies
) - Updated dependency
@graphql-tools/github-loader@^8.0.0
↗︎ (from^7.3.28
, independencies
) - Updated dependency
@graphql-tools/graphql-file-loader@^8.0.0
↗︎ (from^7.5.0
, independencies
) - Updated dependency
@graphql-tools/json-file-loader@^8.0.0
↗︎ (from^7.4.1
, independencies
) - Updated dependency
@graphql-tools/load@^8.0.0
↗︎ (from^7.8.0
, independencies
) - Updated dependency
@graphql-tools/prisma-loader@^8.0.0
↗︎ (from^7.2.69
, independencies
) - Updated dependency
@graphql-tools/url-loader@^8.0.0
↗︎ (from^7.17.17
, independencies
) - Updated dependency
@graphql-tools/utils@^10.0.0
↗︎ (from^9.0.0
, independencies
) - Updated dependency
cosmiconfig@^8.1.3
↗︎ (from^7.0.0
, independencies
) - Updated dependency
graphql-config@^5.0.1
↗︎ (from^4.5.0
, independencies
)
- Updated dependency
-
#9371
d431f426e
Thanks @Axxxx0n! - Fixed option ignoreNoDocuments when using graphql configs -
#9275
2a5da5894
Thanks @milesrichardson! - Trigger rebuilds in watch mode while respecting rules of precedence and negation, both in terms of global (top-level) config vs. local (per-output target) config, and in terms of watch patterns (higher priority) vs. documents/schemas (lower priority). This fixes an issue with overly-aggressive rebuilds during watch mode. -
Updated dependencies [
4d9ea1a5a
,4d9ea1a5a
,f46803a8c
,63827fabe
,bb66c2a31
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- #9449
4d9ea1a5a
Thanks @n1ru4l! - dependencies updates:- Updated dependency
@graphql-tools/schema@^10.0.0
↗︎ (from^9.0.0
, independencies
) - Updated dependency
@graphql-tools/utils@^10.0.0
↗︎ (from^9.1.1
, independencies
)
- Updated dependency
- Updated dependencies [
4d9ea1a5a
,f46803a8c
,63827fabe
,bb66c2a31
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
4d9ea1a5a
,f46803a8c
,63827fabe
,bb66c2a31
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
4d9ea1a5a
,f46803a8c
,63827fabe
,bb66c2a31
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
4d9ea1a5a
,4d9ea1a5a
,f46803a8c
,3848a2b73
,ba84a3a27
,63827fabe
,50471e651
,5aa95aa96
,ca02ad172
,e1dc75f3c
,bb66c2a31
,5950f5a68
,5aa95aa96
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- #9449 [
4d9ea1a5a
](https://gi...
April 22, 2023
@graphql-codegen/[email protected]
Patch Changes
-
#9267
183749346
Thanks @milesrichardson! - Fix watch mode to listen to longest common directory prefix of relevant files, rather than only files below the current working directory (fixes #9266). -
#9280
ca1d72c40
Thanks @saihaj! - fix the default output directory for init command
@graphql-codegen/[email protected]
Patch Changes
-
#9301
386cf9044
Thanks @wassim-k! - Fix fragment imports for near-operation-file with graphQLTag -
#9231
402cb8ac0
Thanks @eddeee888! - Implement resolversNonOptionalTypename for mapper cases
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
386cf9044
,402cb8ac0
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
386cf9044
,402cb8ac0
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
386cf9044
,402cb8ac0
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
-
#9231
402cb8ac0
Thanks @eddeee888! - Implement resolversNonOptionalTypename for mapper cases -
Updated dependencies [
386cf9044
,402cb8ac0
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
386cf9044
,402cb8ac0
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
386cf9044
,402cb8ac0
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
386cf9044
,402cb8ac0
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
386cf9044
,402cb8ac0
]:- @graphql-codegen/[email protected]
April 04, 2023
@graphql-codegen/[email protected]
Minor Changes
-
#9151
b7dacb21f
Thanks @eddeee888! - AddwatchPattern
config option forgenerates
sections.By default,
watch
mode automatically watches all GraphQL schema and document files. This means when a change is detected, Codegen CLI is run.A user may want to run Codegen CLI when non-schema and non-document files are changed. Each
generates
section now has awatchPattern
option to allow more file patterns to be added to the list of patterns to watch.In the example below, mappers are exported from
schema.mappers.ts
files. We want to re-run Codegen if the content of*.mappers.ts
files change because they change the generated types file. To solve this, we can add mapper file patterns to watch using the glob pattern used for schema and document files.// codegen.ts const config: CodegenConfig = { schema: 'src/schema/**/*.graphql', generates: { 'src/schema/types.ts': { plugins: ['typescript', 'typescript-resolvers'], config: { mappers: { User: './user/schema.mappers#UserMapper', Book: './book/schema.mappers#BookMapper', }, } watchPattern: 'src/schema/**/*.mappers.ts', // Watches mapper files in `watch` mode. Use an array for multiple patterns e.g. `['src/*.pattern1.ts','src/*.pattern2.ts']` }, }, };
Then, run Codegen CLI in
watch
mode:yarn graphql-codegen --watch
Now, updating
*.mappers.ts
files re-runs Codegen! 🎉Note:
watchPattern
is only used inwatch
mode i.e. running CLI with--watch
flag.
Patch Changes
- Updated dependencies [
b7dacb21f
,f104619ac
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Minor Changes
-
#9146
9f4d9c5a4
Thanks @eddeee888! - [typescript-resolvers] AddresolversNonOptionalTypename
config option.This is extending on
ResolversUnionTypes
implemented in #9069resolversNonOptionalTypename
adds non-optional__typename
to union members ofResolversUnionTypes
, without affecting the union members' base intefaces.A common use case for non-optional
__typename
of union members is using it as the common field to work out the final schema type. This makes implementing the union's__resolveType
very simple as we can use__typename
to decide which union member the resolved object is. Without this, we have to check the existence of field/s on the incoming object which could be verbose.For example, consider this schema:
type Query { book(id: ID!): BookPayload! } type Book { id: ID! isbn: String! } type BookResult { node: Book } type PayloadError { message: String! } union BookPayload = BookResult | PayloadError
With optional
__typename
: We need to check existence of certain fields to resolve type in the union resolver:// Query/book.ts export const book = async () => { try { const book = await fetchBook(); // 1. No `__typename` in resolver results... return { node: book, }; } catch (e) { return { message: 'Failed to fetch book', }; } }; // BookPayload.ts export const BookPayload = { __resolveType: parent => { // 2. ... means more checks in `__resolveType` if ('message' in parent) { return 'PayloadError'; } return 'BookResult'; }, };
With non-optional
__typename
: Resolvers declare the type. This which gives us better TypeScript support in resolvers and simplify__resolveType
implementation:// Query/book.ts export const book = async () => { try { const book = await fetchBook(); // 1. `__typename` is declared in resolver results... return { __typename: 'BookResult', // 1a. this also types `node` for us 🎉 node: book, }; } catch (e) { return { __typename: 'PayloadError', message: 'Failed to fetch book', }; } }; // BookPayload.ts export const BookPayload = { __resolveType: parent => parent.__typename, // 2. ... means a very simple check in `__resolveType` };
Using
resolversNonOptionalTypename
: add it intotypescript-resolvers
plugin config:// codegen.ts const config: CodegenConfig = { schema: 'src/schema/**/*.graphql', generates: { 'src/schema/types.ts': { plugins: ['typescript', 'typescript-resolvers'], config: { resolversNonOptionalTypename: true, // Or `resolversNonOptionalTypename: { unionMember: true }` }, }, }, };
Patch Changes
-
#9206
e56790104
Thanks @eddeee888! - FixResolversUnionTypes
being used inResolversParentTypes
Previously, objects with mappable fields are converted to Omit format that references its own type group or
ResolversTypes
orResolversParentTypes
e.g.export type ResolversTypes = { Book: ResolverTypeWrapper<BookMapper>; BookPayload: ResolversTypes['BookResult'] | ResolversTypes['StandardError']; // Note: `result` on the next line references `ResolversTypes["Book"]` BookResult: ResolverTypeWrapper<Omit<BookResult, 'result'> & { result?: Maybe<ResolversTypes['Book']> }>; StandardError: ResolverTypeWrapper<StandardError>; }; export type ResolversParentTypes = { Book: BookMapper; BookPayload: ResolversParentTypes['BookResult'] | ResolversParentTypes['StandardError']; // Note: `result` on the next line references `ResolversParentTypes["Book"]` BookResult: Omit<BookResult, 'result'> & { result?: Maybe<ResolversParentTypes['Book']> }; StandardError: StandardError; };
In #9069, we extracted resolver union types to its own group:
export type ResolversUnionTypes = { // Note: `result` on the next line references `ResolversTypes["Book"]` which is only correct for the `ResolversTypes` case BookPayload: (Omit<BookResult, 'result'> & { result?: Maybe<ResolversTypes['Book']> }) | StandardError; }; export type ResolversTypes = { Book: ResolverTypeWrapper<BookMapper>; BookPayload: ResolverTypeWrapper<ResolversUnionTypes['BookPayload']>; BookResult: ResolverTypeWrapper<Omit<BookResult, 'result'> & { result?: Maybe<ResolversTypes['Book']> }>; StandardError: ResolverTypeWrapper<StandardError>; }; export type ResolversParentTypes = { Book: BookMapper; BookPayload: ResolversUnionTypes['BookPayload']; BookResult: Omit<BookResult, 'result'> & { result?: Maybe<ResolversParentTypes['Book']> }; StandardError: StandardError; };
This change creates an extra
ResolversUnionParentTypes
that is referenced byResolversParentTypes
to ensure backwards compatibility:export type ResolversUnionTypes = { BookPayload: (Omit<BookResult, 'result'> & { result?: Maybe<ResolversParentTypes['Book']> }) | StandardError; }; // ... and the reference is changed in ResolversParentTypes: export type ResolversParentTypes = { // ... other fields BookPayload: ResolversUnionParentTypes['BookPayload']; };
-
#9194
acb647e4e
Thanks @dstaley! - Don't emit import statements for unused fragments -
Updated dependencies [
b7dacb21f
,f104619ac
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
March 07, 2023
@graphql-cli/[email protected]
Patch Changes
- Updated dependencies [
a34cef35b
,a34cef35b
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
-
#9086
a34cef35b
Thanks @beerose! - dependencies updates:- Updated dependency
graphql-config@^4.5.0
↗︎ (from^4.4.0
, independencies
) - Added dependency
jiti@^1.17.1
↗︎ (todependencies
) - Removed dependency
cosmiconfig-typescript-loader@^4.3.0
↗︎ (fromdependencies
) - Removed dependency
ts-node@^10.9.1
↗︎ (fromdependencies
)
- Updated dependency
-
#9086
a34cef35b
Thanks @beerose! - Supportcodegen.ts
in ESM projects
@graphql-codegen/[email protected]
Patch Changes
-
#9110
ba0610bbd
Thanks @gilgardosh! - Custom mappers with placeholder will apply omit -
#9069
4b49f6fbe
Thanks @eddeee888! - Extract union types to ResolversUnionTypes -
#8895
b343626c9
Thanks @benkroeger! - Preserve .js extension when importDocumentNodeExternallyFrom and emitLegacyCommonJSImports is false
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
ba0610bbd
,4b49f6fbe
,b343626c9
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
ba0610bbd
,4b49f6fbe
,b343626c9
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
ba0610bbd
,4b49f6fbe
,b343626c9
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
-
#9110
ba0610bbd
Thanks @gilgardosh! - Custom mappers with placeholder will apply omit -
#9069
4b49f6fbe
Thanks @eddeee888! - Extract union types to ResolversUnionTypes -
Updated dependencies [
ba0610bbd
,4b49f6fbe
,b343626c9
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
ba0610bbd
,4b49f6fbe
,b343626c9
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
ba0610bbd
,4b49f6fbe
,b343626c9
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- #9049
9430c3811
Thanks @renovate! - dependencies updates:- Updated dependency
@graphql-typed-document-node/[email protected]
↗︎ (from3.1.1
, independencies
)
- Updated dependency
- Updated dependencies [
ba0610bbd
,4b49f6fbe
,b343626c9
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
ba0610bbd
,4b49f6fbe
,b343626c9
]:- @graphql-codegen/[email protected]
February 23, 2023
@graphql-cli/[email protected]
Patch Changes
- Updated dependencies [
f7313f7ca
,f7313f7ca
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
February 22, 2023
@graphql-cli/[email protected]
Patch Changes
- Updated dependencies [
288ed0977
,288ed0977
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Minor Changes
Patch Changes
- #9009
288ed0977
Thanks @saihaj! - dependencies updates:- Added dependency
@parcel/watcher@^2.1.0
↗︎ (todependencies
) - Removed dependency
chokidar@^3.5.2
↗︎ (fromdependencies
)
- Added dependency
February 21, 2023
@graphql-codegen/[email protected]
Minor Changes
-
#8893
a118c307a
Thanks @n1ru4l! - It is no longer mandatory to declare an empty plugins array when using a preset -
#8723
a3309e63e
Thanks @kazekyo! - Introduce a new feature called DocumentTransform.DocumentTransform is a functionality that allows you to modify
documents
before they are processed by plugins. You can use functions passed to thedocumentTransforms
option to make changes to GraphQL documents.To use this feature, you can write
documentTransforms
as follows:import type { CodegenConfig } from '@graphql-codegen/cli'; const config: CodegenConfig = { schema: 'https://localhost:4000/graphql', documents: ['src/**/*.tsx'], generates: { './src/gql/': { preset: 'client', documentTransforms: [ { transform: ({ documents }) => { // Make some changes to the documents return documents; }, }, ], }, }, }; export default config;
For instance, to remove a
@localOnlyDirective
directive fromdocuments
, you can write the following code:import type { CodegenConfig } from '@graphql-codegen/cli'; import { visit } from 'graphql'; const config: CodegenConfig = { schema: 'https://localhost:4000/graphql', documents: ['src/**/*.tsx'], generates: { './src/gql/': { preset: 'client', documentTransforms: [ { transform: ({ documents }) => { return documents.map(documentFile => { documentFile.document = visit(documentFile.document, { Directive: { leave(node) { if (node.name.value === 'localOnlyDirective') return null; }, }, }); return documentFile; }); }, }, ], }, }, }; export default config;
DocumentTransform can also be specified by file name. You can create a custom file for a specific transformation and pass it to
documentTransforms
.Let's create the document transform as a file:
module.exports = { transform: ({ documents }) => { // Make some changes to the documents return documents; }, };
Then, you can specify the file name as follows:
import type { CodegenConfig } from '@graphql-codegen/cli'; const config: CodegenConfig = { schema: 'https://localhost:4000/graphql', documents: ['src/**/*.tsx'], generates: { './src/gql/': { preset: 'client', documentTransforms: ['./my-document-transform.js'], }, }, }; export default config;
Patch Changes
- #9000
4c422ccf6
Thanks @renovate! - dependencies updates:- Updated dependency
@whatwg-node/fetch@^0.8.0
↗︎ (from^0.6.0
, independencies
)
- Updated dependency
- Updated dependencies [
8206b268d
,8206b268d
,a118c307a
,a3309e63e
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Minor Changes
-
#8723
a3309e63e
Thanks @kazekyo! - Introduce a new feature called DocumentTransform.DocumentTransform is a functionality that allows you to modify
documents
before they are processed by plugins. You can use functions passed to thedocumentTransforms
option to make changes to GraphQL documents.To use this feature, you can write
documentTransforms
as follows:import type { CodegenConfig } from '@graphql-codegen/cli'; const config: CodegenConfig = { schema: 'https://localhost:4000/graphql', documents: ['src/**/*.tsx'], generates: { './src/gql/': { preset: 'client', documentTransforms: [ { transform: ({ documents }) => { // Make some changes to the documents return documents; }, }, ], }, }, }; export default config;
For instance, to remove a
@localOnlyDirective
directive fromdocuments
, you can write the following code:import type { CodegenConfig } from '@graphql-codegen/cli'; import { visit } from 'graphql'; const config: CodegenConfig = { schema: 'https://localhost:4000/graphql', documents: ['src/**/*.tsx'], generates: { './src/gql/': { preset: 'client', documentTransforms: [ { transform: ({ documents }) => { return documents.map(documentFile => { documentFile.document = visit(documentFile.document, { Directive: { leave(node) { if (node.name.value === 'localOnlyDirective') return null; }, }, }); return documentFile; }); }, }, ], }, }, }; export default config;
DocumentTransform can also be specified by file name. You can create a custom file for a specific transformation and pass it to
documentTransforms
.Let's create the document transform as a file:
module.exports = { transform: ({ documents }) => { // Make some changes to the documents return documents; }, };
Then, you can specify the file name as follows:
import type { CodegenConfig } from '@graphql-codegen/cli'; const config: CodegenConfig = { schema: 'https://localhost:4000/graphql', documents: ['src/**/*.tsx'], generates: { './src/gql/': { preset: 'client', documentTransforms: ['./my-document-transform.js'], }, }, }; export default config;
Patch Changes
- #8879
8206b268d
Thanks @renovate! - dependencies updates:- Updated dependency
tslib@~2.5.0
↗︎ (from~2.4.0
, independencies
)
- Updated dependency
- Updated dependencies [
8206b268d
,a118c307a
,a3309e63e
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Minor Changes
- #8853
b13aa7449
Thanks @KGAdamCook! - Updated customResolveInfo to use the correct importType for external imports
Patch Changes
February 03, 2023
@graphql-cli/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
321d5112e
,fd0b0c813
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
-
#8883
321d5112e
Thanks @Solo-steven! - Fix PluckConfig overwrite problem. -
Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
-
Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
-
Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
- Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
Patch Changes
-
Updated dependencies [
fc79b65d4
,fd0b0c813
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Major Changes
January 30, 2023
@graphql-codegen/[email protected]
Patch Changes
- #8836
4fa0a566e
Thanks @renovate! - dependencies updates:- Updated dependency
[email protected]
↗︎ (from13.2.9
, independencies
)
- Updated dependency
January 30, 2023
@graphql-cli/[email protected]
Patch Changes
- Updated dependencies [
e4d073b16
,884d25c4e
,e4d073b16
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
-
#8865
e4d073b16
Thanks @n1ru4l! - dependencies updates:- Updated dependency
@graphql-codegen/core@^2.6.8
↗︎ (from2.6.8
, independencies
) - Updated dependency
@graphql-tools/load@^7.8.0
↗︎ (from7.8.0
, independencies
) - Updated dependency
cosmiconfig-typescript-loader@^4.3.0
↗︎ (from4.3.0
, independencies
) - Updated dependency
graphql-config@^4.4.0
↗︎ (from4.4.0
, independencies
) - Added dependency
ts-node@^10.9.1
↗︎ (todependencies
) - Removed dependency
ts-node@>=10
↗︎ (frompeerDependencies
)
- Updated dependency
-
#8865
e4d073b16
Thanks @n1ru4l! - move ts-node from peer dependencies to dependencies
@graphql-codegen/[email protected]
Patch Changes
- #8816
a98198524
Thanks @charle692! - Fix issue where visitor-plugin-common emitted ESM imports for Operations when emitLegacyCommonJSImports is true
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
a98198524
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
a98198524
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
a98198524
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
a98198524
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
a98198524
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
a98198524
]:- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Minor Changes
-
#8757
4f290aa72
Thanks @n1ru4l! - Add support for persisted documents.You can now generate and embed a persisted documents hash for the executable documents.
/** codegen.ts */ import { CodegenConfig } from '@graphql-codegen/cli'; const config: CodegenConfig = { schema: 'https://swapi-graphql.netlify.app/.netlify/functions/index', documents: ['src/**/*.tsx'], ignoreNoDocuments: true, // for better experience with the watcher generates: { './src/gql/': { preset: 'client', plugins: [], presetConfig: { persistedDocuments: true, }, }, }, }; export default config;
This will generate
./src/gql/persisted-documents.json
(dictionary of hashes with their operation string).In addition to that each generated document node will have a
__meta__.hash
property.import { gql } from './gql.js'; const allFilmsWithVariablesQueryDocument = graphql(/* GraphQL */ ` query allFilmsWithVariablesQuery($first: Int!) { allFilms(first: $first) { edges { node { ...FilmItem } } } } `); console.log((allFilmsWithVariablesQueryDocument as any)['__meta__']['hash']);
-
#8757
4f290aa72
Thanks @n1ru4l! - Add support for embedding metadata in the document AST.It is now possible to embed metadata (e.g. for your GraphQL client within the emitted code).
/** codegen.ts */ import { CodegenConfig } from '@graphql-codegen/cli'; const config: CodegenConfig = { schema: 'https://swapi-graphql.netlify.app/.netlify/functions/index', documents: ['src/**/*.tsx'], ignoreNoDocuments: true, // for better experience with the watcher generates: { './src/gql/': { preset: 'client', plugins: [], presetConfig: { onExecutableDocumentNode(documentNode) { return { operation: documentNode.definitions[0].operation, name: documentNode.definitions[0].name.value, }; }, }, }, }, }; export default config;
You can then access the metadata via the
__meta__
property on the document node.import { gql } from './gql.js'; const allFilmsWithVariablesQueryDocument = graphql(/* GraphQL */ ` query allFilmsWithVariablesQuery($first: Int!) { allFilms(first: $first) { edges { node { ...FilmItem } } } } `); console.log((allFilmsWithVariablesQueryDocument as any)['__meta__']);
Patch Changes
- #8757
4f290aa72
Thanks @n1ru4l! - dependencies updates:- Added dependency
@graphql-tools/documents@^0.1.0
↗︎ (todependencies
)
- Added dependency
- Updated dependencies [
a98198524
]:- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
- @graphql-codegen/[email protected]
@graphql-codegen/[email protected]
Patch Changes
- Updated dependencies [
a98198524
]:- @graphql-codegen/[email protected]