diff --git a/examples/programmatic-typescript/package.json b/examples/programmatic-typescript/package.json index 08450c01800..ed6623965ee 100644 --- a/examples/programmatic-typescript/package.json +++ b/examples/programmatic-typescript/package.json @@ -12,10 +12,10 @@ "dependencies": { "@graphql-codegen/core": "5.0.0", "@graphql-codegen/plugin-helpers": "6.0.0", - "@graphql-codegen/typed-document-node": "6.0.0", - "@graphql-codegen/typescript": "5.0.0", - "@graphql-codegen/typescript-operations": "5.0.0", - "@graphql-codegen/typescript-resolvers": "5.0.0", + "@graphql-codegen/typed-document-node": "6.0.1", + "@graphql-codegen/typescript": "5.0.1", + "@graphql-codegen/typescript-operations": "5.0.1", + "@graphql-codegen/typescript-resolvers": "5.0.1", "@graphql-tools/graphql-file-loader": "8.0.1", "@graphql-tools/load": "8.1.0", "@graphql-tools/schema": "10.0.6", diff --git a/examples/typescript-resolvers/package.json b/examples/typescript-resolvers/package.json index 488eb93657f..79074599ad8 100644 --- a/examples/typescript-resolvers/package.json +++ b/examples/typescript-resolvers/package.json @@ -4,8 +4,8 @@ "private": true, "devDependencies": { "@graphql-codegen/cli": "6.0.0", - "@graphql-codegen/typescript": "5.0.0", - "@graphql-codegen/typescript-resolvers": "5.0.0" + "@graphql-codegen/typescript": "5.0.1", + "@graphql-codegen/typescript-resolvers": "5.0.1" }, "dependencies": { "graphql": "16.9.0", diff --git a/packages/plugins/other/visitor-plugin-common/CHANGELOG.md b/packages/plugins/other/visitor-plugin-common/CHANGELOG.md index 963d9c81280..8726d035ceb 100644 --- a/packages/plugins/other/visitor-plugin-common/CHANGELOG.md +++ b/packages/plugins/other/visitor-plugin-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @graphql-codegen/visitor-plugin-common +## 6.0.1 + +### Patch Changes + +- [#10412](https://github.com/dotansimha/graphql-code-generator/pull/10412) [`accdab6`](https://github.com/dotansimha/graphql-code-generator/commit/accdab69106605241933e9d66d64dc7077656f30) Thanks [@thekevinbrown](https://github.com/thekevinbrown)! - Add special handling for identifiers that consist entirely of _ characters when transformUnderscore is true. This prevents _ values in GraphQL enums from being emitted without identifers in the resulting types. + ## 6.0.0 ### Major Changes diff --git a/packages/plugins/other/visitor-plugin-common/package.json b/packages/plugins/other/visitor-plugin-common/package.json index 83ab2470069..4bc89efa1c6 100644 --- a/packages/plugins/other/visitor-plugin-common/package.json +++ b/packages/plugins/other/visitor-plugin-common/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-codegen/visitor-plugin-common", - "version": "6.0.0", + "version": "6.0.1", "license": "MIT", "repository": { "type": "git", diff --git a/packages/plugins/other/visitor-plugin-common/src/base-types-visitor.ts b/packages/plugins/other/visitor-plugin-common/src/base-types-visitor.ts index 5c0fdac5bd5..a153e0283ec 100644 --- a/packages/plugins/other/visitor-plugin-common/src/base-types-visitor.ts +++ b/packages/plugins/other/visitor-plugin-common/src/base-types-visitor.ts @@ -493,6 +493,8 @@ export interface RawTypesConfig extends RawConfig { directiveArgumentAndInputFieldMappingTypeSuffix?: string; } +const onlyUnderscoresPattern = /^_+$/; + export class BaseTypesVisitor< TRawConfig extends RawTypesConfig = RawTypesConfig, TPluginConfig extends ParsedTypesConfig = ParsedTypesConfig @@ -903,7 +905,9 @@ export class BaseTypesVisitor< const optionName = this.makeValidEnumIdentifier( this.convertName(enumOption, { useTypesPrefix: false, - transformUnderscore: true, + // We can only strip out the underscores if the value contains other + // characters. Otherwise we'll generate syntactically invalid code. + transformUnderscore: !onlyUnderscoresPattern.test(enumOption.name.value), }) ); const comment = this.getNodeComment(enumOption); diff --git a/packages/plugins/typescript/document-nodes/CHANGELOG.md b/packages/plugins/typescript/document-nodes/CHANGELOG.md index 2b85ab061b4..11008c8afb6 100644 --- a/packages/plugins/typescript/document-nodes/CHANGELOG.md +++ b/packages/plugins/typescript/document-nodes/CHANGELOG.md @@ -1,5 +1,12 @@ # @graphql-codegen/typescript-document-nodes +## 5.0.1 + +### Patch Changes + +- Updated dependencies [[`accdab6`](https://github.com/dotansimha/graphql-code-generator/commit/accdab69106605241933e9d66d64dc7077656f30)]: + - @graphql-codegen/visitor-plugin-common@6.0.1 + ## 5.0.0 ### Major Changes diff --git a/packages/plugins/typescript/document-nodes/package.json b/packages/plugins/typescript/document-nodes/package.json index 2be3a79e040..61b67622c0e 100644 --- a/packages/plugins/typescript/document-nodes/package.json +++ b/packages/plugins/typescript/document-nodes/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-codegen/typescript-document-nodes", - "version": "5.0.0", + "version": "5.0.1", "description": "GraphQL Code Generator plugin for generating TypeScript modules with embedded GraphQL document nodes", "repository": { "type": "git", @@ -14,7 +14,7 @@ }, "dependencies": { "@graphql-codegen/plugin-helpers": "^6.0.0", - "@graphql-codegen/visitor-plugin-common": "6.0.0", + "@graphql-codegen/visitor-plugin-common": "6.0.1", "auto-bind": "~4.0.0", "tslib": "~2.6.0" }, diff --git a/packages/plugins/typescript/gql-tag-operations/CHANGELOG.md b/packages/plugins/typescript/gql-tag-operations/CHANGELOG.md index 683c2626f37..a9388b077ff 100644 --- a/packages/plugins/typescript/gql-tag-operations/CHANGELOG.md +++ b/packages/plugins/typescript/gql-tag-operations/CHANGELOG.md @@ -1,5 +1,12 @@ # @graphql-codegen/gql-tag-operations +## 5.0.1 + +### Patch Changes + +- Updated dependencies [[`accdab6`](https://github.com/dotansimha/graphql-code-generator/commit/accdab69106605241933e9d66d64dc7077656f30)]: + - @graphql-codegen/visitor-plugin-common@6.0.1 + ## 5.0.0 ### Major Changes diff --git a/packages/plugins/typescript/gql-tag-operations/package.json b/packages/plugins/typescript/gql-tag-operations/package.json index 9207f12e0d8..621c3180efc 100644 --- a/packages/plugins/typescript/gql-tag-operations/package.json +++ b/packages/plugins/typescript/gql-tag-operations/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-codegen/gql-tag-operations", - "version": "5.0.0", + "version": "5.0.1", "description": "GraphQL Code Generator plugin for generating a typed gql tag function", "repository": { "type": "git", @@ -18,7 +18,7 @@ "dependencies": { "@graphql-tools/utils": "^10.0.0", "@graphql-codegen/plugin-helpers": "^6.0.0", - "@graphql-codegen/visitor-plugin-common": "6.0.0", + "@graphql-codegen/visitor-plugin-common": "6.0.1", "auto-bind": "~4.0.0", "tslib": "~2.6.0" }, diff --git a/packages/plugins/typescript/operations/CHANGELOG.md b/packages/plugins/typescript/operations/CHANGELOG.md index 9f4e9fb6ffe..fa02b54fb3c 100644 --- a/packages/plugins/typescript/operations/CHANGELOG.md +++ b/packages/plugins/typescript/operations/CHANGELOG.md @@ -1,5 +1,13 @@ # @graphql-codegen/typescript-operations +## 5.0.1 + +### Patch Changes + +- Updated dependencies [[`accdab6`](https://github.com/dotansimha/graphql-code-generator/commit/accdab69106605241933e9d66d64dc7077656f30)]: + - @graphql-codegen/visitor-plugin-common@6.0.1 + - @graphql-codegen/typescript@5.0.1 + ## 5.0.0 ### Major Changes diff --git a/packages/plugins/typescript/operations/package.json b/packages/plugins/typescript/operations/package.json index 0a00d4c89d9..85f137d7c23 100644 --- a/packages/plugins/typescript/operations/package.json +++ b/packages/plugins/typescript/operations/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-codegen/typescript-operations", - "version": "5.0.0", + "version": "5.0.1", "description": "GraphQL Code Generator plugin for generating TypeScript types for GraphQL queries, mutations, subscriptions and fragments", "repository": { "type": "git", @@ -14,8 +14,8 @@ }, "dependencies": { "@graphql-codegen/plugin-helpers": "^6.0.0", - "@graphql-codegen/typescript": "^5.0.0", - "@graphql-codegen/visitor-plugin-common": "6.0.0", + "@graphql-codegen/typescript": "^5.0.1", + "@graphql-codegen/visitor-plugin-common": "6.0.1", "auto-bind": "~4.0.0", "tslib": "~2.6.0" }, diff --git a/packages/plugins/typescript/resolvers/CHANGELOG.md b/packages/plugins/typescript/resolvers/CHANGELOG.md index a7de8e71c56..2763da82d5a 100644 --- a/packages/plugins/typescript/resolvers/CHANGELOG.md +++ b/packages/plugins/typescript/resolvers/CHANGELOG.md @@ -1,5 +1,13 @@ # @graphql-codegen/typescript-resolvers +## 5.0.1 + +### Patch Changes + +- Updated dependencies [[`accdab6`](https://github.com/dotansimha/graphql-code-generator/commit/accdab69106605241933e9d66d64dc7077656f30)]: + - @graphql-codegen/visitor-plugin-common@6.0.1 + - @graphql-codegen/typescript@5.0.1 + ## 5.0.0 ### Major Changes diff --git a/packages/plugins/typescript/resolvers/package.json b/packages/plugins/typescript/resolvers/package.json index fe03811546f..8af471e2fa6 100644 --- a/packages/plugins/typescript/resolvers/package.json +++ b/packages/plugins/typescript/resolvers/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-codegen/typescript-resolvers", - "version": "5.0.0", + "version": "5.0.1", "description": "GraphQL Code Generator plugin for generating TypeScript types for resolvers signature", "repository": { "type": "git", @@ -14,8 +14,8 @@ }, "dependencies": { "@graphql-codegen/plugin-helpers": "^6.0.0", - "@graphql-codegen/typescript": "^5.0.0", - "@graphql-codegen/visitor-plugin-common": "6.0.0", + "@graphql-codegen/typescript": "^5.0.1", + "@graphql-codegen/visitor-plugin-common": "6.0.1", "@graphql-tools/utils": "^10.0.0", "auto-bind": "~4.0.0", "tslib": "~2.6.0" diff --git a/packages/plugins/typescript/typed-document-node/CHANGELOG.md b/packages/plugins/typescript/typed-document-node/CHANGELOG.md index 01f07f61b9d..3ed09f8c946 100644 --- a/packages/plugins/typescript/typed-document-node/CHANGELOG.md +++ b/packages/plugins/typescript/typed-document-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @graphql-codegen/typed-document-node +## 6.0.1 + +### Patch Changes + +- Updated dependencies [[`accdab6`](https://github.com/dotansimha/graphql-code-generator/commit/accdab69106605241933e9d66d64dc7077656f30)]: + - @graphql-codegen/visitor-plugin-common@6.0.1 + ## 6.0.0 ### Major Changes diff --git a/packages/plugins/typescript/typed-document-node/package.json b/packages/plugins/typescript/typed-document-node/package.json index 56d84db18fd..bcbe5524547 100644 --- a/packages/plugins/typescript/typed-document-node/package.json +++ b/packages/plugins/typescript/typed-document-node/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-codegen/typed-document-node", - "version": "6.0.0", + "version": "6.0.1", "description": "GraphQL Code Generator plugin for generating ready-to-use TypedDocumentNode based on GraphQL operations", "repository": { "type": "git", @@ -18,7 +18,7 @@ "dependencies": { "change-case-all": "1.0.15", "@graphql-codegen/plugin-helpers": "^6.0.0", - "@graphql-codegen/visitor-plugin-common": "6.0.0", + "@graphql-codegen/visitor-plugin-common": "6.0.1", "auto-bind": "~4.0.0", "tslib": "~2.6.0" }, diff --git a/packages/plugins/typescript/typescript/CHANGELOG.md b/packages/plugins/typescript/typescript/CHANGELOG.md index 2643996e3e6..57912d38180 100644 --- a/packages/plugins/typescript/typescript/CHANGELOG.md +++ b/packages/plugins/typescript/typescript/CHANGELOG.md @@ -1,5 +1,12 @@ # @graphql-codegen/typescript +## 5.0.1 + +### Patch Changes + +- Updated dependencies [[`accdab6`](https://github.com/dotansimha/graphql-code-generator/commit/accdab69106605241933e9d66d64dc7077656f30)]: + - @graphql-codegen/visitor-plugin-common@6.0.1 + ## 5.0.0 ### Major Changes diff --git a/packages/plugins/typescript/typescript/package.json b/packages/plugins/typescript/typescript/package.json index 893c1e9b856..40935ee4737 100644 --- a/packages/plugins/typescript/typescript/package.json +++ b/packages/plugins/typescript/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-codegen/typescript", - "version": "5.0.0", + "version": "5.0.1", "description": "GraphQL Code Generator plugin for generating TypeScript types", "repository": { "type": "git", @@ -15,7 +15,7 @@ "dependencies": { "@graphql-codegen/plugin-helpers": "^6.0.0", "@graphql-codegen/schema-ast": "^5.0.0", - "@graphql-codegen/visitor-plugin-common": "6.0.0", + "@graphql-codegen/visitor-plugin-common": "6.0.1", "auto-bind": "~4.0.0", "tslib": "~2.6.0" }, diff --git a/packages/plugins/typescript/typescript/tests/typescript.spec.ts b/packages/plugins/typescript/typescript/tests/typescript.spec.ts index 88383bd5840..f829c5e2550 100644 --- a/packages/plugins/typescript/typescript/tests/typescript.spec.ts +++ b/packages/plugins/typescript/typescript/tests/typescript.spec.ts @@ -193,7 +193,7 @@ describe('TypeScript', () => { }`); }); - it('Should removed underscore from enum values', async () => { + it('Should remove underscore from enum values', async () => { const schema = buildSchema(/* GraphQL */ ` enum MyEnum { A_B_C @@ -213,6 +213,24 @@ describe('TypeScript', () => { }`); }); + it('Should leave underscores in enum values when the value is only underscores', async () => { + const schema = buildSchema(/* GraphQL */ ` + enum MyEnum { + _ + __ + _TEST + } + `); + const result = await plugin(schema, [], {}, { outputFile: '' }); + + expect(result.content).toBeSimilarStringTo(` + export enum MyEnum { + _ = '_', + __ = '__', + Test = '_TEST' + }`); + }); + it('Should work with enum as const', async () => { const schema = buildSchema(/* GraphQL */ ` enum MyEnum { diff --git a/packages/presets/client/CHANGELOG.md b/packages/presets/client/CHANGELOG.md index 47a51e61764..159817ff0fd 100644 --- a/packages/presets/client/CHANGELOG.md +++ b/packages/presets/client/CHANGELOG.md @@ -1,5 +1,16 @@ # @graphql-codegen/client-preset +## 5.0.2 + +### Patch Changes + +- Updated dependencies [[`accdab6`](https://github.com/dotansimha/graphql-code-generator/commit/accdab69106605241933e9d66d64dc7077656f30)]: + - @graphql-codegen/visitor-plugin-common@6.0.1 + - @graphql-codegen/gql-tag-operations@5.0.1 + - @graphql-codegen/typescript-operations@5.0.1 + - @graphql-codegen/typed-document-node@6.0.1 + - @graphql-codegen/typescript@5.0.1 + ## 5.0.1 ### Patch Changes diff --git a/packages/presets/client/package.json b/packages/presets/client/package.json index 340c94c4d93..18bb18c5c52 100644 --- a/packages/presets/client/package.json +++ b/packages/presets/client/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-codegen/client-preset", - "version": "5.0.1", + "version": "5.0.2", "description": "GraphQL Code Generator preset for client.", "repository": { "type": "git", @@ -21,12 +21,12 @@ "@babel/helper-plugin-utils": "^7.20.2", "@babel/template": "^7.20.7", "@graphql-codegen/add": "^6.0.0", - "@graphql-codegen/typed-document-node": "^6.0.0", - "@graphql-codegen/typescript": "^5.0.0", - "@graphql-codegen/typescript-operations": "^5.0.0", - "@graphql-codegen/gql-tag-operations": "5.0.0", + "@graphql-codegen/typed-document-node": "^6.0.1", + "@graphql-codegen/typescript": "^5.0.1", + "@graphql-codegen/typescript-operations": "^5.0.1", + "@graphql-codegen/gql-tag-operations": "5.0.1", "@graphql-codegen/plugin-helpers": "^6.0.0", - "@graphql-codegen/visitor-plugin-common": "^6.0.0", + "@graphql-codegen/visitor-plugin-common": "^6.0.1", "@graphql-typed-document-node/core": "3.2.0", "@graphql-tools/documents": "^1.0.0", "@graphql-tools/utils": "^10.0.0", diff --git a/packages/presets/graphql-modules/CHANGELOG.md b/packages/presets/graphql-modules/CHANGELOG.md index a266b515dde..c39d69694c4 100644 --- a/packages/presets/graphql-modules/CHANGELOG.md +++ b/packages/presets/graphql-modules/CHANGELOG.md @@ -1,5 +1,12 @@ # @graphql-codegen/graphql-modules-preset +## 5.0.2 + +### Patch Changes + +- Updated dependencies [[`accdab6`](https://github.com/dotansimha/graphql-code-generator/commit/accdab69106605241933e9d66d64dc7077656f30)]: + - @graphql-codegen/visitor-plugin-common@6.0.1 + ## 5.0.1 ### Patch Changes diff --git a/packages/presets/graphql-modules/package.json b/packages/presets/graphql-modules/package.json index 6d2a4c313b7..6612448af35 100644 --- a/packages/presets/graphql-modules/package.json +++ b/packages/presets/graphql-modules/package.json @@ -1,6 +1,6 @@ { "name": "@graphql-codegen/graphql-modules-preset", - "version": "5.0.1", + "version": "5.0.2", "description": "GraphQL Code Generator preset for modularized schema", "repository": { "type": "git", @@ -16,7 +16,7 @@ }, "dependencies": { "@graphql-codegen/plugin-helpers": "^6.0.0", - "@graphql-codegen/visitor-plugin-common": "6.0.0", + "@graphql-codegen/visitor-plugin-common": "6.0.1", "@graphql-tools/utils": "^10.0.0", "parse-filepath": "^1.0.2", "change-case-all": "1.0.15", diff --git a/website/package.json b/website/package.json index a49a33b2c0a..2bcda3e713b 100644 --- a/website/package.json +++ b/website/package.json @@ -27,7 +27,7 @@ "@graphql-codegen/c-sharp": "4.3.1", "@graphql-codegen/c-sharp-operations": "2.3.1", "@graphql-codegen/cli": "6.0.0", - "@graphql-codegen/client-preset": "5.0.1", + "@graphql-codegen/client-preset": "5.0.2", "@graphql-codegen/core": "5.0.0", "@graphql-codegen/flow": "2.3.6", "@graphql-codegen/flow-operations": "2.3.6", @@ -46,8 +46,8 @@ "@graphql-codegen/near-operation-file-preset": "2.5.0", "@graphql-codegen/schema-ast": "5.0.0", "@graphql-codegen/time": "6.0.0", - "@graphql-codegen/typed-document-node": "6.0.0", - "@graphql-codegen/typescript": "5.0.0", + "@graphql-codegen/typed-document-node": "6.0.1", + "@graphql-codegen/typescript": "5.0.1", "@graphql-codegen/typescript-apollo-angular": "3.5.6", "@graphql-codegen/typescript-apollo-client-helpers": "2.2.6", "@graphql-codegen/typescript-generic-sdk": "3.1.0", @@ -56,10 +56,10 @@ "@graphql-codegen/typescript-mongodb": "2.4.6", "@graphql-codegen/typescript-msw": "3.0.1", "@graphql-codegen/typescript-nhost": "0.0.3", - "@graphql-codegen/typescript-operations": "5.0.0", + "@graphql-codegen/typescript-operations": "5.0.1", "@graphql-codegen/typescript-react-apollo": "3.3.7", "@graphql-codegen/typescript-react-query": "4.1.0", - "@graphql-codegen/typescript-resolvers": "5.0.0", + "@graphql-codegen/typescript-resolvers": "5.0.1", "@graphql-codegen/typescript-rtk-query": "2.4.1", "@graphql-codegen/typescript-stencil-apollo": "2.3.6", "@graphql-codegen/typescript-type-graphql": "2.3.6",