36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*
 | 
						|
	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();
 |