An open API service indexing awesome lists of open source software.

https://github.com/astrohelm/filesnitch

Astrohelm file system snitch 👁️
https://github.com/astrohelm/filesnitch

astrohelm filesystem fs javascript montoring nodejs snitch watcher zero-dependencies

Last synced: 6 months ago
JSON representation

Astrohelm file system snitch 👁️

Awesome Lists containing this project

README

          

FileSnitch - File system watcher


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.

Installation

```bash
npm i filesnitch --save
```

Usage

```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 & contributors


Copyright © 2023 Astrohelm contributors.
This library MIT licensed.

And it is part of Astrohelm ecosystem.