fsevents
Advanced tools
Weekly downloads
Changelog
Release v2.3.2
Released to npm as v2.3.2
Readme
Native access to MacOS FSEvents in Node.js
The FSEvents API in MacOS allows applications to register for notifications of changes to a given directory tree. It is a very fast and lightweight alternative to kqueue.
This is a low-level library. For a cross-platform file watching module that uses fsevents, check out Chokidar.
Supports only Node.js v8.16 and higher.
npm install fsevents
const fsevents = require('fsevents');
const stop = fsevents.watch(__dirname, (path, flags, id) => {
const info = fsevents.getInfo(path, flags, id);
}); // To start observation
stop(); // To end observation
The callback passed as the second parameter to .watch
get's called whenever the operating system detects a
a change in the file system. It takes three arguments:
fsevents.watch(dirname: string, (path: string, flags: number, id: string) => void): () => Promise<undefined>
path: string
- the item in the filesystem that have been changedflags: number
- a numeric value describing what the change wasid: string
- an unique-id identifying this specific eventReturns closer callback which when called returns a Promise resolving when the watcher process has been shut down.
fsevents.getInfo(path: string, flags: number, id: string): FsEventInfo
The getInfo
function takes the path
, flags
and id
arguments and converts those parameters into a structure
that is easier to digest to determine what the change was.
The FsEventsInfo
has the following shape:
/**
* @typedef {'created'|'modified'|'deleted'|'moved'|'root-changed'|'cloned'|'unknown'} FsEventsEvent
* @typedef {'file'|'directory'|'symlink'} FsEventsType
*/
{
"event": "created", // {FsEventsEvent}
"path": "file.txt",
"type": "file", // {FsEventsType}
"changes": {
"inode": true, // Had iNode Meta-Information changed
"finder": false, // Had Finder Meta-Data changed
"access": false, // Had access permissions changed
"xattrs": false // Had xAttributes changed
},
"flags": 0x100000000
}
EBADPLATFORM
Unsupported platform for fsevents
error.The MIT License Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller — see LICENSE file.
Visit our GitHub page and NPM Page
FAQs
Native Access to MacOS FSEvents
The npm package fsevents receives a total of 22,828,853 weekly downloads. As such, fsevents popularity was classified as popular.
We found that fsevents demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.