summaryrefslogtreecommitdiffstats
path: root/node_modules/tapable/lib/MultiHook.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/tapable/lib/MultiHook.js')
-rw-r--r--node_modules/tapable/lib/MultiHook.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/node_modules/tapable/lib/MultiHook.js b/node_modules/tapable/lib/MultiHook.js
new file mode 100644
index 0000000..cddd917
--- /dev/null
+++ b/node_modules/tapable/lib/MultiHook.js
@@ -0,0 +1,50 @@
+/*
+ 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;