123456789101112131415161718192021222324252627282930313233343536373839 |
- var gaze = require('gaze');
- var EventEmitter = require('events').EventEmitter;
-
- module.exports = function(glob, opts, cb) {
- var out = new EventEmitter();
-
- if (typeof opts === 'function') {
- cb = opts;
- opts = {};
- }
-
- var watcher = gaze(glob, opts, function(err, rwatcher){
- if (err) out.emit('error', err);
- rwatcher.on('all', function(evt, path, old){
- var outEvt = {type: evt, path: path};
- if(old) outEvt.old = old;
- out.emit('change', outEvt);
- if(cb) cb(outEvt);
- });
- });
-
- watcher.on('end', out.emit.bind(out, 'end'));
- watcher.on('error', out.emit.bind(out, 'error'));
- watcher.on('ready', out.emit.bind(out, 'ready'));
- watcher.on('nomatch', out.emit.bind(out, 'nomatch'));
-
- out.end = function(){
- return watcher.close();
- };
- out.add = function(){
- return watcher.add.apply(watcher, arguments);
- };
- out.remove = function(){
- return watcher.remove();
- };
- out._watcher = watcher;
-
- return out;
- };
|