Files
sign-android-release/node_modules/fsevents
Drew Heavner a974aa01d4 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	node_modules/@babel/core/node_modules/.bin/json5
#	node_modules/@babel/core/node_modules/.bin/parser
#	node_modules/@babel/helper-member-expression-to-functions/package.json
#	node_modules/@babel/helper-module-imports/package.json
#	node_modules/@babel/helper-module-transforms/package.json
#	node_modules/@babel/helper-optimise-call-expression/package.json
#	node_modules/@babel/helper-replace-supers/package.json
#	node_modules/@babel/helper-simple-access/package.json
#	node_modules/@babel/helper-validator-identifier/package.json
#	node_modules/@types/yargs-parser/LICENSE
#	node_modules/@types/yargs-parser/README.md
#	node_modules/@types/yargs-parser/package.json
#	node_modules/callsites/package.json
#	node_modules/emoji-regex/README.md
#	node_modules/emoji-regex/es2015/index.js
#	node_modules/emoji-regex/es2015/text.js
#	node_modules/emoji-regex/index.d.ts
#	node_modules/emoji-regex/index.js
#	node_modules/emoji-regex/package.json
#	node_modules/emoji-regex/text.js
#	node_modules/esprima/package.json
#	node_modules/gensync/package.json
#	node_modules/html-escaper/package.json
#	node_modules/istanbul-lib-instrument/node_modules/semver/package.json
#	node_modules/jest-snapshot/node_modules/semver/bin/semver.js
#	node_modules/lodash.memoize/package.json
#	node_modules/picomatch/package.json
#	node_modules/read-pkg/index.js
#	node_modules/read-pkg/package.json
#	node_modules/read-pkg/readme.md
#	node_modules/slash/index.js
#	node_modules/slash/package.json
#	node_modules/slash/readme.md
#	node_modules/ts-jest/node_modules/.bin/mkdirp
#	node_modules/word-wrap/package.json
2020-11-13 16:25:21 -05:00
..
2020-11-13 16:25:03 -05:00
2020-11-13 19:11:55 +01:00
2020-11-13 19:11:55 +01:00
2020-11-13 19:11:55 +01:00
2020-11-13 19:11:55 +01:00
2020-11-13 19:11:55 +01:00
2020-11-13 19:11:55 +01:00

fsevents NPM

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.

Installation

Supports only Node.js v8.16 and higher.

npm install fsevents

Usage

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 changed
  • flags: number - a numeric value describing what the change was
  • id: string - an unique-id identifying this specific event

Returns 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
}

Engine compatibility

  • v2 supports node 8.16+
  • v1.2.8 supports node 6+
  • v1.2.7 supports node 4+

Troubleshooting

  • I'm getting EBADPLATFORM Unsupported platform for fsevents error.
  • It's fine, nothing is broken. fsevents is macos-only. Other platforms are skipped. If you want to hide this warning, report a bug to NPM bugtracker asking them to hide ebadplatform warnings by default.

License

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