diff options
Diffstat (limited to 'node_modules/tapable/lib/SyncBailHook.js')
-rw-r--r-- | node_modules/tapable/lib/SyncBailHook.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/node_modules/tapable/lib/SyncBailHook.js b/node_modules/tapable/lib/SyncBailHook.js new file mode 100644 index 0000000..f41e13e --- /dev/null +++ b/node_modules/tapable/lib/SyncBailHook.js @@ -0,0 +1,42 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const Hook = require("./Hook"); +const HookCodeFactory = require("./HookCodeFactory"); + +class SyncBailHookCodeFactory extends HookCodeFactory { + content({ onError, onResult, resultReturns, onDone, rethrowIfPossible }) { + return this.callTapsSeries({ + onError: (i, err) => onError(err), + onResult: (i, result, next) => + `if(${result} !== undefined) {\n${onResult( + result + )};\n} else {\n${next()}}\n`, + resultReturns, + onDone, + rethrowIfPossible + }); + } +} + +const factory = new SyncBailHookCodeFactory(); + +class SyncBailHook extends Hook { + tapAsync() { + throw new Error("tapAsync is not supported on a SyncBailHook"); + } + + tapPromise() { + throw new Error("tapPromise is not supported on a SyncBailHook"); + } + + compile(options) { + factory.setup(this, options); + return factory.create(options); + } +} + +module.exports = SyncBailHook; |