forked from gulpjs/gulp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwatchFile.js
35 lines (30 loc) · 830 Bytes
/
watchFile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var gaze = require('gaze'),
EventEmitter = require('events').EventEmitter;
module.exports = function(glob, cb) {
var out = new EventEmitter();
var watcher = gaze(glob, function(err, rwatcher){
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'));
out.end = function(){
return watcher.close();
};
out.files = function(){
return watcher.watched();
};
out.add = function(){
return watcher.add();
};
out.remove = function(){
return watcher.remove();
};
out._watcher = watcher;
return out;
};