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();
 |