GitXplorerGitXplorer
p

deep-watch

public
5 stars
2 forks
0 issues

Commits

List of commits on branch master.
Unverified
0c8d5a1ff92ee1ba6d9dcc6f313f65dac34bf90b

Change the tests to not check for the event type due to a node bug.

pphilipwalton committed 11 years ago
Unverified
72cd6e2ae3ab72da1654f9f6ac5ee9b790c42872

Update the README to include info about fs.watch's recursive option.

pphilipwalton committed 11 years ago
Unverified
d83610e67ae77c207b1410aaa8986291099dc454

Account for adding and removing directories in the exclude list.

pphilipwalton committed 11 years ago
Unverified
9353e68fd793d8844ffe31d196d3469ff8ca9e54

Update tests to add the fixtures at test time.

pphilipwalton committed 11 years ago
Unverified
07af4f60d41409da50dc3ccf99bfcfc978c5a979

Add initial tests.

pphilipwalton committed 11 years ago
Unverified
26aada53fa8eaad167b928073c75d910e21483a1

Rename watch-deep to deep-watcher.

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.