Watch specific files, directories and deeply nested directories
Deduplicate events with debounce
Filter your filesystem events
Warning
This library does not manage rename event, you will receive two different events instead:
- First event is
unlink
, with old path to the file - Second event is
new
, with new path to the file
You can handle it on your own with handling this kind of scenarios. Also don't use this library if
you want to manage remote repositories, try fs.watchFile
instead.
npm i filesnitch --save
const Snitch = require('filesnitch');
const snitch = new Snitch({
timeout: 200, // Events debouncing for queue (default 1000)
filter: new RegExp(/[\D\d]+\.ignore\D*/), // Ignore files and directories
// filter: path => new RegExp(/[\D\d]+\.ignore\D*/).test(path), // (Function)
// filter: /[\D\d]+\.ignore\D*/, // (RegExp)
// filter: '/[\D\d]+\.ignore\D*/', // (string)
recursive: false, // Include nested directories (default: true)
home: process.cwd(), // Removes root path from emits, Warning: ignore will work on full paths
});
snitch.watchSync('/home/user/Downloads').watchSync('/home/user/Documents');
snitch.watch('/home/user/Desktop', (event, path, details) => console.log('New File ! Desktop'));
snitch.on('before', events => console.log({ before: events }));
snitch.on('update', (path, details) => console.log({ changed: path, details }));
snitch.on('unlink', path => console.log({ deleted: path }));
snitch.on('new', path => console.log({ new: path }));
snitch.on('event', (event, path, details) => console.log({ event, path, details }));
snitch.on('after', events => console.log({ after: events }));
Copyright © 2023 Astrohelm contributors.
This library MIT licensed.
And it is part of Astrohelm ecosystem.