Skip to content

Commit 61889f2

Browse files
committedMar 10, 2021
fix(load-files): respect ignoredExtensions even if there is a specific file glob
1 parent e77692c commit 61889f2

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed
 

‎.changeset/slow-cherries-wonder.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@graphql-tools/load-files': patch
3+
---
4+
5+
fix(load-files): respect ignoredExtensions even if there is a specific file glob

‎packages/load-files/src/index.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,16 @@ const checkExtension = (
182182
}
183183

184184
for (const extension of extensions) {
185-
if (path.endsWith(formatExtension(extension))) {
185+
const formattedExtension = formatExtension(extension);
186+
if (path.endsWith(formattedExtension)) {
187+
if (ignoredExtensions) {
188+
for (const ignoredExtension of ignoredExtensions) {
189+
const formattedIgnoredExtension = formatExtension(ignoredExtension);
190+
if (path.endsWith(formattedIgnoredExtension + formattedExtension)) {
191+
return false;
192+
}
193+
}
194+
}
186195
return true;
187196
}
188197
}

‎packages/load-files/tests/file-scanner.spec.ts

+11-2
Original file line numberDiff line numberDiff line change
@@ -235,15 +235,24 @@ describe('file scanner', function() {
235235
expect(typeof loadedFiles[0][customQueryTypeName]['foo']).toBe('function');
236236
expect(loadedFiles[0][customQueryTypeName]['foo']()).toBe('FOO');
237237
});
238-
it(`${type}: ignore .d.ts files by default`, async () => {
238+
it(`${type}: ignore .d.ts files by default without file glob`, async () => {
239239
const loadedFiles = await loadFiles(join(__dirname, './test-assets/ignore-extensions'));
240240
expect(loadedFiles).toHaveLength(1);
241241
const resolvers = loadedFiles[0];
242242
expect(typeof resolvers).toBe('object');
243243
expect(typeof resolvers.Query).toBe('object');
244244
expect(typeof resolvers.Query.foo).toBe('function');
245245
expect(resolvers.Query.foo()).toBe('FOO');
246-
})
246+
});
247+
it(`${type}: ignore .d.ts files by default without file glob`, async () => {
248+
const loadedFiles = await loadFiles(join(__dirname, './test-assets/ignore-extensions/*.*'));
249+
expect(loadedFiles).toHaveLength(1);
250+
const resolvers = loadedFiles[0];
251+
expect(typeof resolvers).toBe('object');
252+
expect(typeof resolvers.Query).toBe('object');
253+
expect(typeof resolvers.Query.foo).toBe('function');
254+
expect(resolvers.Query.foo()).toBe('FOO');
255+
});
247256
})
248257
});
249258

0 commit comments

Comments
 (0)
Please sign in to comment.