/* | |
MIT License http://www.opensource.org/licenses/mit-license.php | |
Author Tobias Koppers @sokra | |
*/ | |
"use strict"; | |
var path = require("path"); | |
function WatcherManager() { | |
this.directoryWatchers = {}; | |
} | |
WatcherManager.prototype.getDirectoryWatcher = function(directory, options) { | |
var DirectoryWatcher = require("./DirectoryWatcher"); | |
options = options || {}; | |
var key = directory + " " + JSON.stringify(options); | |
if(!this.directoryWatchers[key]) { | |
this.directoryWatchers[key] = new DirectoryWatcher(directory, options); | |
this.directoryWatchers[key].on("closed", function() { | |
delete this.directoryWatchers[key]; | |
}.bind(this)); | |
} | |
return this.directoryWatchers[key]; | |
}; | |
WatcherManager.prototype.watchFile = function watchFile(p, options, startTime) { | |
var directory = path.dirname(p); | |
return this.getDirectoryWatcher(directory, options).watch(p, startTime); | |
}; | |
WatcherManager.prototype.watchDirectory = function watchDirectory(directory, options, startTime) { | |
return this.getDirectoryWatcher(directory, options).watch(directory, startTime); | |
}; | |
module.exports = new WatcherManager(); |