watcher icon indicating copy to clipboard operation
watcher copied to clipboard

Bug: Recursive watcher with depth = 1 does not work under Linux if watched folder has subfolders

Open vincesp opened this issue 4 months ago • 0 comments

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)
  }
}

vincesp avatar Feb 16 '24 16:02 vincesp