mirror of https://github.com/actions/setup-python
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();
|
|
},
|
|
});
|