|
1 | 1 | import path from 'path'; |
2 | 2 | import chalk from 'chalk'; |
3 | | -import chokidar from 'chokidar'; |
| 3 | +import chokidar, {Matcher} from 'chokidar'; |
4 | 4 | import Debug from 'debug'; |
5 | 5 | import {fdir} from 'fdir'; |
6 | 6 | import fs from 'fs/promises'; |
@@ -39,8 +39,14 @@ async function getLocalFiles(rootDir: string, ignorePatterns: string[], recursiv |
39 | 39 | fdirBuilder = fdirBuilder.withMaxDepth(0); |
40 | 40 | } |
41 | 41 | const files = await fdirBuilder.crawl(rootDir).withPromise(); |
42 | | - const filteredFiles = micromatch.not(files, ignorePatterns, {dot: true}); |
43 | | - debug('Filtered %d files from ignore rules', files.length - filteredFiles.length); |
| 42 | + let filteredFiles: string[]; |
| 43 | + if (ignorePatterns && ignorePatterns.length) { |
| 44 | + filteredFiles = micromatch.not(files, ignorePatterns, {dot: true}); |
| 45 | + debug('Filtered %d files from ignore rules', files.length - filteredFiles.length); |
| 46 | + } else { |
| 47 | + debug('Ignore rules are empty, using all files.'); |
| 48 | + filteredFiles = files; |
| 49 | + } |
44 | 50 | filteredFiles.sort((a, b) => a.localeCompare(b)); |
45 | 51 | return filteredFiles[Symbol.iterator](); |
46 | 52 | } |
@@ -222,13 +228,17 @@ export class Files { |
222 | 228 | const onChange = async (path: string) => { |
223 | 229 | collector(path); |
224 | 230 | }; |
| 231 | + let matcher: Matcher | undefined; |
| 232 | + if (ignorePatterns && ignorePatterns.length) { |
| 233 | + matcher = file => { |
| 234 | + return micromatch.not([file], ignorePatterns, {dot: true}).length === 0; |
| 235 | + }; |
| 236 | + } |
225 | 237 | const watcher = chokidar.watch(this.options.files.contentDir, { |
226 | 238 | persistent: true, |
227 | 239 | ignoreInitial: true, |
228 | 240 | cwd: this.options.files.contentDir, |
229 | | - ignored: file => { |
230 | | - return micromatch.not([file], ignorePatterns, {dot: true}).length === 0; |
231 | | - }, |
| 241 | + ignored: matcher, |
232 | 242 | }); |
233 | 243 | watcher.on('ready', onReady); // Push on start |
234 | 244 | watcher.on('add', onChange); |
|
0 commit comments