/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const Hook = require("./Hook"); class MultiHook { constructor(hooks, name = undefined) { this.hooks = hooks; this.name = name; } 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)), this.name ); } } module.exports = MultiHook;