41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | const NodeWatcher = require('./src/node_watcher'); | ||
|  | const PollWatcher = require('./src/poll_watcher'); | ||
|  | const WatchmanWatcher = require('./src/watchman_watcher'); | ||
|  | const WatchexecWatcher = require('./src/watchexec_watcher'); | ||
|  | 
 | ||
|  | function throwNoFSEventsSupports() { | ||
|  |   throw new Error('Sane >= 4 no longer support the fsevents module.'); | ||
|  | } | ||
|  | 
 | ||
|  | function sane(dir, options) { | ||
|  |   options = options || {}; | ||
|  |   if (options.watcher) { | ||
|  |     const WatcherClass = require(options.watcher); | ||
|  |     return new WatcherClass(dir, options); | ||
|  |   } else if (options.poll) { | ||
|  |     return new PollWatcher(dir, options); | ||
|  |   } else if (options.watchman) { | ||
|  |     return new WatchmanWatcher(dir, options); | ||
|  |   } else if (options.watchexec) { | ||
|  |     return new WatchexecWatcher(dir, options); | ||
|  |   } else if (options.fsevents) { | ||
|  |     throwNoFSEventsSupports(); | ||
|  |   } else { | ||
|  |     return new NodeWatcher(dir, options); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = sane; | ||
|  | sane.NodeWatcher = NodeWatcher; | ||
|  | sane.PollWatcher = PollWatcher; | ||
|  | sane.WatchmanWatcher = WatchmanWatcher; | ||
|  | sane.WatchexecWatcher = WatchexecWatcher; | ||
|  | 
 | ||
|  | Object.defineProperty(sane, 'FSEventsWatcher', { | ||
|  |   get() { | ||
|  |     return throwNoFSEventsSupports(); | ||
|  |   }, | ||
|  | }); |