| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | 
							- /*
 
- 	MIT License http://www.opensource.org/licenses/mit-license.php
 
- 	Author Tobias Koppers @sokra
 
- */
 
- "use strict";
 
- const validateOptions = require("schema-utils");
 
- const schema = require("../schemas/plugins/WatchIgnorePlugin.json");
 
- /** @typedef {import("../declarations/plugins/WatchIgnorePlugin").WatchIgnorePluginOptions} WatchIgnorePluginOptions */
 
- class IgnoringWatchFileSystem {
 
- 	constructor(wfs, paths) {
 
- 		this.wfs = wfs;
 
- 		this.paths = paths;
 
- 	}
 
- 	watch(files, dirs, missing, startTime, options, callback, callbackUndelayed) {
 
- 		const ignored = path =>
 
- 			this.paths.some(p =>
 
- 				p instanceof RegExp ? p.test(path) : path.indexOf(p) === 0
 
- 			);
 
- 		const notIgnored = path => !ignored(path);
 
- 		const ignoredFiles = files.filter(ignored);
 
- 		const ignoredDirs = dirs.filter(ignored);
 
- 		const watcher = this.wfs.watch(
 
- 			files.filter(notIgnored),
 
- 			dirs.filter(notIgnored),
 
- 			missing,
 
- 			startTime,
 
- 			options,
 
- 			(
 
- 				err,
 
- 				filesModified,
 
- 				dirsModified,
 
- 				missingModified,
 
- 				fileTimestamps,
 
- 				dirTimestamps,
 
- 				removedFiles
 
- 			) => {
 
- 				if (err) return callback(err);
 
- 				for (const path of ignoredFiles) {
 
- 					fileTimestamps.set(path, 1);
 
- 				}
 
- 				for (const path of ignoredDirs) {
 
- 					dirTimestamps.set(path, 1);
 
- 				}
 
- 				callback(
 
- 					err,
 
- 					filesModified,
 
- 					dirsModified,
 
- 					missingModified,
 
- 					fileTimestamps,
 
- 					dirTimestamps,
 
- 					removedFiles
 
- 				);
 
- 			},
 
- 			callbackUndelayed
 
- 		);
 
- 		return {
 
- 			close: () => watcher.close(),
 
- 			pause: () => watcher.pause(),
 
- 			getContextTimestamps: () => {
 
- 				const dirTimestamps = watcher.getContextTimestamps();
 
- 				for (const path of ignoredDirs) {
 
- 					dirTimestamps.set(path, 1);
 
- 				}
 
- 				return dirTimestamps;
 
- 			},
 
- 			getFileTimestamps: () => {
 
- 				const fileTimestamps = watcher.getFileTimestamps();
 
- 				for (const path of ignoredFiles) {
 
- 					fileTimestamps.set(path, 1);
 
- 				}
 
- 				return fileTimestamps;
 
- 			}
 
- 		};
 
- 	}
 
- }
 
- class WatchIgnorePlugin {
 
- 	/**
 
- 	 * @param {WatchIgnorePluginOptions} paths list of paths
 
- 	 */
 
- 	constructor(paths) {
 
- 		validateOptions(schema, paths, "Watch Ignore Plugin");
 
- 		this.paths = paths;
 
- 	}
 
- 	apply(compiler) {
 
- 		compiler.hooks.afterEnvironment.tap("WatchIgnorePlugin", () => {
 
- 			compiler.watchFileSystem = new IgnoringWatchFileSystem(
 
- 				compiler.watchFileSystem,
 
- 				this.paths
 
- 			);
 
- 		});
 
- 	}
 
- }
 
- module.exports = WatchIgnorePlugin;
 
 
  |