GitXplorerGitXplorer
p

deep-watch

public
5 stars
2 forks
0 issues

Commits

List of commits on branch master.
Unverified
bc37eae1648b38d1b8d8ff7445208477cf116eb0

Convert the watch-deep function to a constructor.

pphilipwalton committed 11 years ago
Unverified
1b3c5760f6fef21df58345717235a9a393d79cf1

Remove travis.yml.

pphilipwalton committed 11 years ago
Unverified
ed9844950f0d612f1ab98c2beac8a209e81bbea4

Add initial files.

pphilipwalton committed 11 years ago

README

The README file for this repository.

Deep Watch

Exactly like fs.watch, but with sub-directory support. When an instance of DeepWatch is registered on a directory, it scans all of that directories sub-directories and applies watchers to them as well. It also keeps track of newly added or removed directories after the watching has begun.

Note: A recursive option for fs.watch is currently supported (for OS X only) in a beta version of node (v0.11.9). Supported platforms will use the recursive option, all other platorms will use this library's original implementation.

API

new DeepWatch(cwd, [options], callback)

Return a new DeepWatch instance.

cwd String - the root directory to start watching from

options Object - see below for options details

  • exclude: Array - a list of directory names to ignore. Events on those directories, their sud-directories, or any files within are not reported. (default: [])
  • ignoreDotDirectories: Boolean - whether to ignore directories beginning with a . (default: true)

callback Function - a callback to be invoked on each file systen event. The callback is invoked with the following arguments (event, filename) and the DeepWatch instance as its this context.

DeepWatch#start()

Start listening for file system events.

DeepWatch#stop()

Stop listening for events and remove any associated watchers.

Example

var DeepWatch = require('deep-watch')

var dw = new DeepWatch('.', function(event, filename) {
  if (filename == 'foo/bar/index.html') this.stop()
})

dw.start()

Known limitations

  • If multiple, nested files or directories are added at the same time (or very quickly), no event will be triggered for the nested file. This can happen when doing something like mkdir -p new-directory/new-sub-directory. The reason is that the sub-directory is created before the callback for the creation of the parent directory is invoked.