From 2a3b45e3e25e2ff44469e12f10f5e21e17dd4c02 Mon Sep 17 00:00:00 2001 From: Saihajpreet Singh Date: Wed, 27 Jul 2022 15:25:37 -0400 Subject: [PATCH] feat: allow ampersand in file names to load (#4603) --- .changeset/tender-forks-yawn.md | 8 ++++++++ packages/loaders/graphql-file/tests/loader.spec.ts | 1 + .../graphql-file/tests/test-files/typedefs-&-copy.graphql | 7 +++++++ packages/utils/src/helpers.ts | 2 +- 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 .changeset/tender-forks-yawn.md create mode 100644 packages/loaders/graphql-file/tests/test-files/typedefs-&-copy.graphql diff --git a/.changeset/tender-forks-yawn.md b/.changeset/tender-forks-yawn.md new file mode 100644 index 00000000000..01ef0e18de4 --- /dev/null +++ b/.changeset/tender-forks-yawn.md @@ -0,0 +1,8 @@ +--- +'@graphql-tools/graphql-file-loader': minor +'@graphql-tools/utils': minor +--- + +Allow `&` in filenames. + +Related to https://github.com/dotansimha/graphql-code-generator/issues/6174 diff --git a/packages/loaders/graphql-file/tests/loader.spec.ts b/packages/loaders/graphql-file/tests/loader.spec.ts index 62add69c84b..cc5edf87b82 100644 --- a/packages/loaders/graphql-file/tests/loader.spec.ts +++ b/packages/loaders/graphql-file/tests/loader.spec.ts @@ -19,6 +19,7 @@ describe('GraphQLFileLoader', () => { })(canLoad => { it('should return true for a valid pointer', async () => { await expect(canLoad(getPointer('type-defs.graphql'), {})).resolves.toBe(true); + await expect(canLoad(getPointer('typedefs-&-copy.graphql'), {})).resolves.toBe(true); }); it('should return true for a valid absolute path', async () => { diff --git a/packages/loaders/graphql-file/tests/test-files/typedefs-&-copy.graphql b/packages/loaders/graphql-file/tests/test-files/typedefs-&-copy.graphql new file mode 100644 index 00000000000..cc3bb573479 --- /dev/null +++ b/packages/loaders/graphql-file/tests/test-files/typedefs-&-copy.graphql @@ -0,0 +1,7 @@ +#import AFragment from "./fragment.graphql" + +query MyQuery { + a { + ...AFragment + } +} diff --git a/packages/utils/src/helpers.ts b/packages/utils/src/helpers.ts index 99309f6e0db..a8f972b69d4 100644 --- a/packages/utils/src/helpers.ts +++ b/packages/utils/src/helpers.ts @@ -25,7 +25,7 @@ export function isDocumentString(str: any): boolean { return false; } -const invalidPathRegex = /[‘“!%&^<=>`]/; +const invalidPathRegex = /[‘“!%^<=>`]/; export function isValidPath(str: any): boolean { return typeof str === 'string' && !invalidPathRegex.test(str); }