Blame view

node_modules/tapable/lib/SyncBailHook.js 937 Bytes
ce4c83ff   wxy   初始提交
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
  /*
  	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, 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`,
  			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;