| /* |
| MIT License http://www.opensource.org/licenses/mit-license.php |
| Author Tobias Koppers @sokra |
| */ |
| "use strict"; |
| |
| const asyncLib = require("neo-async"); |
| |
| class MultiWatching { |
| constructor(watchings, compiler) { |
| this.watchings = watchings; |
| this.compiler = compiler; |
| } |
| |
| invalidate() { |
| for (const watching of this.watchings) { |
| watching.invalidate(); |
| } |
| } |
| |
| suspend() { |
| for (const watching of this.watchings) { |
| watching.suspend(); |
| } |
| } |
| |
| resume() { |
| for (const watching of this.watchings) { |
| watching.resume(); |
| } |
| } |
| |
| close(callback) { |
| asyncLib.forEach( |
| this.watchings, |
| (watching, finishedCallback) => { |
| watching.close(finishedCallback); |
| }, |
| err => { |
| this.compiler.hooks.watchClose.call(); |
| if (typeof callback === "function") { |
| this.compiler.running = false; |
| callback(err); |
| } |
| } |
| ); |
| } |
| } |
| |
| module.exports = MultiWatching; |