watcher
watcher copied to clipboard
Bug: Recursive watcher with depth = 1 does not work under Linux if watched folder has subfolders
Description
A Watcher with recursive: true
but depth: 1
does not work under Linux if the watched folder has subfolders. Note that the same configuration does work under Windows (not tested in macOS).
Reproduction
Open the following StackBlitz: https://stackblitz.com/edit/stackblitz-starters-bvvkgg?file=index.js
In the terminal, run
node index.js
Expected output:
recursiveNestedWatcher addDir /home/projects/stackblitz-starters-bvvkgg/nestedFolder
recursiveNestedWatcher addDir /home/projects/stackblitz-starters-bvvkgg/nestedFolder/subfolder
recursiveNestedWatcher add /home/projects/stackblitz-starters-bvvkgg/nestedFolder/foo.txt
nonRecursiveNestedWatcher addDir /home/projects/stackblitz-starters-bvvkgg/nestedFolder
nonRecursiveNestedWatcher addDir /home/projects/stackblitz-starters-bvvkgg/nestedFolder/subfolder
nonRecursiveNestedWatcher add /home/projects/stackblitz-starters-bvvkgg/nestedFolder/foo.txt
flatWatcher addDir /home/projects/stackblitz-starters-bvvkgg/flatFolder
flatWatcher add /home/projects/stackblitz-starters-bvvkgg/flatFolder/hello.txt
Actual output:
nonRecursiveNestedWatcher addDir /home/projects/stackblitz-starters-bvvkgg/nestedFolder
nonRecursiveNestedWatcher addDir /home/projects/stackblitz-starters-bvvkgg/nestedFolder/subfolder
nonRecursiveNestedWatcher add /home/projects/stackblitz-starters-bvvkgg/nestedFolder/foo.txt
flatWatcher addDir /home/projects/stackblitz-starters-bvvkgg/flatFolder
flatWatcher add /home/projects/stackblitz-starters-bvvkgg/flatFolder/hello.txt
Executed code:
import Watcher from 'watcher'
const flatWatcher = new Watcher(
'flatFolder',
{
recursive: true,
depth: 1,
limit: Infinity,
},
makeHandler('flatWatcher')
)
const recursiveNestedWatcher = new Watcher(
'nestedFolder',
{
recursive: true,
depth: 1,
limit: Infinity,
},
makeHandler('recursiveNestedWatcher')
)
const nonRecursiveNestedWatcher = new Watcher(
'nestedFolder',
{
recursive: false,
depth: 1,
limit: Infinity,
},
makeHandler('nonRecursiveNestedWatcher')
)
function makeHandler(name) {
return function onFile(type, targetPath) {
console.log(name, type, targetPath)
}
}