1 var gaze = require('gaze');
2 var EventEmitter = require('events').EventEmitter;
4 module.exports = function(glob, opts, cb) {
5 var out = new EventEmitter();
7 if (typeof opts === 'function') {
12 var watcher = gaze(glob, opts, function(err, rwatcher){
13 if (err) out.emit('error', err);
14 rwatcher.on('all', function(evt, path, old){
15 var outEvt = {type: evt, path: path};
16 if(old) outEvt.old = old;
17 out.emit('change', outEvt);
22 watcher.on('end', out.emit.bind(out, 'end'));
23 watcher.on('error', out.emit.bind(out, 'error'));
24 watcher.on('ready', out.emit.bind(out, 'ready'));
25 watcher.on('nomatch', out.emit.bind(out, 'nomatch'));
28 return watcher.close();
31 return watcher.add.apply(watcher, arguments);
33 out.remove = function(){
34 return watcher.remove();
36 out._watcher = watcher;