source: trip-planner-front/node_modules/tapable/lib/SyncBailHook.js@ 8d391a1

Last change on this file since 8d391a1 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 1.2 KB
Line 
1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Tobias Koppers @sokra
4*/
5"use strict";
6
7const Hook = require("./Hook");
8const HookCodeFactory = require("./HookCodeFactory");
9
10class SyncBailHookCodeFactory extends HookCodeFactory {
11 content({ onError, onResult, resultReturns, onDone, rethrowIfPossible }) {
12 return this.callTapsSeries({
13 onError: (i, err) => onError(err),
14 onResult: (i, result, next) =>
15 `if(${result} !== undefined) {\n${onResult(
16 result
17 )};\n} else {\n${next()}}\n`,
18 resultReturns,
19 onDone,
20 rethrowIfPossible
21 });
22 }
23}
24
25const factory = new SyncBailHookCodeFactory();
26
27const TAP_ASYNC = () => {
28 throw new Error("tapAsync is not supported on a SyncBailHook");
29};
30
31const TAP_PROMISE = () => {
32 throw new Error("tapPromise is not supported on a SyncBailHook");
33};
34
35const COMPILE = function(options) {
36 factory.setup(this, options);
37 return factory.create(options);
38};
39
40function SyncBailHook(args = [], name = undefined) {
41 const hook = new Hook(args, name);
42 hook.constructor = SyncBailHook;
43 hook.tapAsync = TAP_ASYNC;
44 hook.tapPromise = TAP_PROMISE;
45 hook.compile = COMPILE;
46 return hook;
47}
48
49SyncBailHook.prototype = null;
50
51module.exports = SyncBailHook;
Note: See TracBrowser for help on using the repository browser.