You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							35 lines
						
					
					
						
							1.1 KiB
						
					
					
				/* | 
						|
	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();
 | 
						|
 |