| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
- */
- "use strict";
- class MultiHook {
- constructor(hooks, name = undefined) {
- this.hooks = hooks;
- this.name = name;
- }
- tap(options, fn) {
- const { hooks } = this;
- for (let i = 0; i < hooks.length; i++) {
- hooks[i].tap(options, fn);
- }
- }
- tapAsync(options, fn) {
- const { hooks } = this;
- for (let i = 0; i < hooks.length; i++) {
- hooks[i].tapAsync(options, fn);
- }
- }
- tapPromise(options, fn) {
- const { hooks } = this;
- for (let i = 0; i < hooks.length; i++) {
- hooks[i].tapPromise(options, fn);
- }
- }
- isUsed() {
- const { hooks } = this;
- for (let i = 0; i < hooks.length; i++) {
- if (hooks[i].isUsed()) return true;
- }
- return false;
- }
- intercept(interceptor) {
- const { hooks } = this;
- for (let i = 0; i < hooks.length; i++) {
- hooks[i].intercept(interceptor);
- }
- }
- withOptions(options) {
- return new MultiHook(
- this.hooks.map((hook) => hook.withOptions(options)),
- this.name
- );
- }
- }
- module.exports = MultiHook;
|