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.
		
		
		
		
		
			
		
			
				
					
					
						
							40 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							40 lines
						
					
					
						
							1.1 KiB
						
					
					
				'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(); | 
						|
  }, | 
						|
});
 | 
						|
 |