aboutsummaryrefslogtreecommitdiff
path: root/node_modules/glob-watcher/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/glob-watcher/index.js')
-rw-r--r--node_modules/glob-watcher/index.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/node_modules/glob-watcher/index.js b/node_modules/glob-watcher/index.js
new file mode 100644
index 000000000..907defd4e
--- /dev/null
+++ b/node_modules/glob-watcher/index.js
@@ -0,0 +1,39 @@
+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;
+};