Astrohelm file system watcher
npm install filesnitch
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.
``bash`
npm i filesnitch --save
`js
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.