diff --git a/.changeset/metal-ducks-attack.md b/.changeset/metal-ducks-attack.md new file mode 100644 index 0000000..9e4d22e --- /dev/null +++ b/.changeset/metal-ducks-attack.md @@ -0,0 +1,6 @@ +--- +"@ts-gql/compiler": minor +"@ts-gql/config": minor +--- + +Replace `nonOptionalTypename` option with `addTypename` option diff --git a/packages/compiler/src/get-generated-types.ts b/packages/compiler/src/get-generated-types.ts index aeb0a51..ea6096c 100644 --- a/packages/compiler/src/get-generated-types.ts +++ b/packages/compiler/src/get-generated-types.ts @@ -131,7 +131,7 @@ export const getGeneratedTypes = async ({ schema, directory, scalars, - nonOptionalTypename, + addTypename, }: Config) => { let generatedDirectory = nodePath.join( nodePath.join(directory, "__generated__", "ts-gql") @@ -310,7 +310,7 @@ export const getGeneratedTypes = async ({ filename, schemaHash, nodes[0].name!.value, - nonOptionalTypename + addTypename ); if (operation) fsOperations.push(operation); }) diff --git a/packages/compiler/src/operation-types.ts b/packages/compiler/src/operation-types.ts index 264202b..83b6a0d 100644 --- a/packages/compiler/src/operation-types.ts +++ b/packages/compiler/src/operation-types.ts @@ -24,7 +24,7 @@ async function generateOperationTypes( filename: string, operationHash: string, operationName: string, - nonOptionalTypename: boolean + addTypename: boolean ): Promise { let result = codegen({ documents: [{ document: operation }], @@ -40,7 +40,8 @@ async function generateOperationTypes( immutableTypes: true, avoidOptionals: true, noExport: true, - nonOptionalTypename, + nonOptionalTypename: addTypename, + skipTypename: !addTypename, namingConvention: "keep", }, }, @@ -144,10 +145,10 @@ export async function cachedGenerateOperationTypes( filename: string, schemaHash: string, operationName: string, - nonOptionalTypename: boolean + addTypename: boolean ) { let operationHash = hashString( - schemaHash + JSON.stringify(operation) + nonOptionalTypename + "v5" + schemaHash + JSON.stringify(operation) + addTypename + "v6" ); let types: string; try { @@ -161,7 +162,7 @@ export async function cachedGenerateOperationTypes( filename, operationHash, operationName, - nonOptionalTypename + addTypename ); } throw err; @@ -177,7 +178,7 @@ export async function cachedGenerateOperationTypes( filename, operationHash, operationName, - nonOptionalTypename + addTypename ); } } diff --git a/packages/config/src/index.ts b/packages/config/src/index.ts index 1c9fe66..8a5fecb 100644 --- a/packages/config/src/index.ts +++ b/packages/config/src/index.ts @@ -14,14 +14,14 @@ export type Config = { directory: string; schema: GraphQLSchema; scalars: Record; - nonOptionalTypename: boolean; + addTypename: boolean; }; export type RawConfig = { directory: string; schema: string; scalars: Record; - nonOptionalTypename: boolean; + addTypename: boolean; }; function parseFieldToConfig({ @@ -41,7 +41,7 @@ function parseFieldToConfig({ schema: path.resolve(directory, field.schema), directory, scalars: field.scalars || {}, - nonOptionalTypename: field.nonOptionalTypename ?? true, + addTypename: field.addTypename ?? true, }; } throw new ConfigNotFoundError("ts-gql config not found"); diff --git a/test-app/pages/apollo.tsx b/test-app/pages/apollo.tsx index fe7ddda..3379818 100644 --- a/test-app/pages/apollo.tsx +++ b/test-app/pages/apollo.tsx @@ -3,6 +3,7 @@ import { useQuery, useMutation } from "@ts-gql/apollo"; const query2 = gql` query MyQueryApollo { + __typename hello another }