12345678910111213141516171819202122232425262728293031323334353637383940 |
- '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();
- },
- });
|