wat4hjs
v1.1.0
Published
Native file system events
Downloads
25
Readme
wat4hjs
- What:
wat4hjs is a JavaScript wrapper for native C code that allows some code to "watch" a directory for changes. Changes can include:
- Creation of files
- Modification of files
- Renaming of files
- Deletion of files
- Why: At the time of writing this, most libraries and packages that existed did not include the functionality I was looking for. In most cases they would either be a platform abstraction layer or perhaps, not run the code natively. This package is a wrapper to a C library that is shipped as part of the package.
- When: The first commit was featured in January of 2024, continued support expected.
- Who: Contributors
- How: (Insert Diagramatic representation)
Index
- Title
- Features
- Supported Platforms
- Dependencies
- Installation
- Usage Example
- History
- Other packages
- Contributors
Features
Supported Platforms
Dependencies
Installation & Building
Using npm (JavaScript only)
npm install wat4hjs
To build the C library, adhere to the following
mkdir -p build
cd build
cmake ..
- Please note that by default a production build will be enabled in cmake, to enable a debug build, please enable debug with the debug flag
- By default wat4hjs on npm ships with a production copy of the library for the supported platform
Usage
For users who want to to interface using JavaScript
const wat4h = require("wat4hjs")
const path = require("path")
const emitter = wat4h.init(path.normalize("/"))
wat4h.observer(emitter, wat4h.callback) // Inform the observer
wat4h.monitor(emitter) // Start monitoring
Using destructured assignments
const {init, observer, monitor, callback} = require("wat4hjs")
const path = require("path")
const emitter = wat4h.init(path.normalize("/"))
wat4h.observer(emitter, wat4h.callback) // Inform the observer
wat4h.monitor(emitter) // Start monitoring
If you want to use the C library natively
#include "consts.h"
int main()
{
const char *defaultPath = ""; // Adjust the default path as needed
EventEmitter *emitter = init(defaultPath);
observer(emitter, tagDirEvent); // Inform the observer
monitor(emitter); // Start monitoring
return 0;
}