fsevents

Native access to MacOS FSEvents in Node.js

  • 所有者: fsevents/fsevents
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

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",
  "path": "file.txt", // {FsEventsEvent}
  "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+

License

The MIT License Copyright (C) 2010-2019 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller — see LICENSE file.

Visit our GitHub page and NPM Page

主要指標

概覽
名稱與所有者fsevents/fsevents
主編程語言C
編程語言Python (語言數: 4)
平台
許可證MIT License
所有者活动
創建於2011-02-23 16:41:56
推送於2024-09-03 21:54:37
最后一次提交2023-08-21 17:21:41
發布數64
最新版本名稱v2.3.3 (發布於 )
第一版名稱v0.2.0 (發布於 2014-11-04 20:48:44)
用户参与
星數570
關注者數31
派生數118
提交數277
已啟用問題?
問題數277
打開的問題數10
拉請求數79
打開的拉請求數4
關閉的拉請求數39
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?