| /* |
| MIT License http://www.opensource.org/licenses/mit-license.php |
| Author Tobias Koppers @sokra |
| */ |
| "use strict"; |
| |
| const Hook = require("./Hook"); |
| |
| class MultiHook { |
| constructor(hooks) { |
| this.hooks = hooks; |
| } |
| |
| tap(options, fn) { |
| for (const hook of this.hooks) { |
| hook.tap(options, fn); |
| } |
| } |
| |
| tapAsync(options, fn) { |
| for (const hook of this.hooks) { |
| hook.tapAsync(options, fn); |
| } |
| } |
| |
| tapPromise(options, fn) { |
| for (const hook of this.hooks) { |
| hook.tapPromise(options, fn); |
| } |
| } |
| |
| isUsed() { |
| for (const hook of this.hooks) { |
| if (hook.isUsed()) return true; |
| } |
| return false; |
| } |
| |
| intercept(interceptor) { |
| for (const hook of this.hooks) { |
| hook.intercept(interceptor); |
| } |
| } |
| |
| withOptions(options) { |
| return new MultiHook(this.hooks.map(h => h.withOptions(options))); |
| } |
| } |
| |
| module.exports = MultiHook; |