summaryrefslogtreecommitdiff
path: root/node_modules/watchpack/lib/getWatcherManager.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-11-05 17:16:09 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-11-05 17:16:09 +0800
commitd1d9f00b1bd660842addf5e6b1d1b64c852a9eea (patch)
tree60fb37ae73a1109d95301de5ec9b61b5726a4b61 /node_modules/watchpack/lib/getWatcherManager.js
parent7c85166c4cbdd862fc4252007d2df5befcbc2a58 (diff)
added hover prefixer
Diffstat (limited to 'node_modules/watchpack/lib/getWatcherManager.js')
-rw-r--r--node_modules/watchpack/lib/getWatcherManager.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/node_modules/watchpack/lib/getWatcherManager.js b/node_modules/watchpack/lib/getWatcherManager.js
new file mode 100644
index 00000000..e0dcd6ac
--- /dev/null
+++ b/node_modules/watchpack/lib/getWatcherManager.js
@@ -0,0 +1,52 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+
+const path = require("path");
+const DirectoryWatcher = require("./DirectoryWatcher");
+
+class WatcherManager {
+ constructor(options) {
+ this.options = options;
+ this.directoryWatchers = new Map();
+ }
+
+ getDirectoryWatcher(directory) {
+ const watcher = this.directoryWatchers.get(directory);
+ if (watcher === undefined) {
+ const newWatcher = new DirectoryWatcher(this, directory, this.options);
+ this.directoryWatchers.set(directory, newWatcher);
+ newWatcher.on("closed", () => {
+ this.directoryWatchers.delete(directory);
+ });
+ return newWatcher;
+ }
+ return watcher;
+ }
+
+ watchFile(p, startTime) {
+ const directory = path.dirname(p);
+ if (directory === p) return null;
+ return this.getDirectoryWatcher(directory).watch(p, startTime);
+ }
+
+ watchDirectory(directory, startTime) {
+ return this.getDirectoryWatcher(directory).watch(directory, startTime);
+ }
+}
+
+const watcherManagers = new WeakMap();
+/**
+ * @param {object} options options
+ * @returns {WatcherManager} the watcher manager
+ */
+module.exports = options => {
+ const watcherManager = watcherManagers.get(options);
+ if (watcherManager !== undefined) return watcherManager;
+ const newWatcherManager = new WatcherManager(options);
+ watcherManagers.set(options, newWatcherManager);
+ return newWatcherManager;
+};
+module.exports.WatcherManager = WatcherManager;