RunKit + npm: tapable

node v13.14.0
endpointsharetweet
const { SyncHook, SyncBailHook, SyncWaterfallHook, SyncLoopHook, AsyncParallelHook, AsyncParallelBailHook, AsyncSeriesHook, AsyncSeriesBailHook, AsyncSeriesWaterfallHook } = require("tapable"); console.log( "1**********************************************************************\n" ); let sh = new SyncHook(["name", "age"]); sh.tap("A", () => { console.log("A"); }); sh.tap( { name: "B", before: "A" }, () => { console.log("B"); } ); sh.tap("C", () => { console.log("C"); }); sh.call(); /** function anonymous(name, age) { "use strict"; var _context; var _x = this._x; var _fn0 = _x[0]; _fn0(name, age); var _fn1 = _x[1]; _fn1(name, age); var _fn2 = _x[2]; _fn2(name, age); } */ console.log( "2**********************************************************************\n" ); let sh2 = new SyncBailHook(["arg1"]); sh2.tap("A", () => { console.log("A"); }); sh2.tap("B", () => { console.log("B"); return 1; }); sh2.tap("C", () => { console.log("C"); }); sh2.call(); /** function anonymous(arg1) { "use strict"; var _context; var _x = this._x; var _fn0 = _x[0]; var _result0 = _fn0(arg1); if (_result0 !== undefined) { return _result0; } else { var _fn1 = _x[1]; var _result1 = _fn1(arg1); if (_result1 !== undefined) { return _result1; } else { var _fn2 = _x[2]; var _result2 = _fn2(arg1); if (_result2 !== undefined) { return _result2; } else { } } } } */ console.log( "3**********************************************************************\n" ); let sh3 = new SyncWaterfallHook(["arg1"]); sh3.tap("A", arg => { console.log("In A:", arg); return "From A"; }); sh3.tap("B", arg => { console.log("In B:", arg); return "From B"; }); sh3.tap("A", arg => { console.log("In C:", arg); return "From C"; }); sh3.call("Init"); /** function anonymous(arg1) { "use strict"; var _context; var _x = this._x; var _fn0 = _x[0]; var _result0 = _fn0(arg1); if (_result0 !== undefined) { arg1 = _result0; } var _fn1 = _x[1]; var _result1 = _fn1(arg1); if (_result1 !== undefined) { arg1 = _result1; } var _fn2 = _x[2]; var _result2 = _fn2(arg1); if (_result2 !== undefined) { arg1 = _result2; } return arg1; } */ console.log( "4**********************************************************************\n" ); let sh4 = new SyncLoopHook(["arg1"]); sh4.tap("A", () => { let rand = Math.random(); if (rand > 0.5) { console.log("Bingo A"); return true; } }); sh4.tap("B", () => { let rand = Math.random(); if (rand > 0.5) { console.log("Bingo B"); return true; } }); sh4.call(); /** function anonymous(arg1) { "use strict"; var _context; var _x = this._x; var _loop; do { _loop = false; var _fn0 = _x[0]; var _result0 = _fn0(arg1); if (_result0 !== undefined) { _loop = true; } else { var _fn1 = _x[1]; var _result1 = _fn1(arg1); if (_result1 !== undefined) { _loop = true; } else { if (!_loop) { } } } } while (_loop); } */ console.log( "5**********************************************************************\n" ); let sh5 = new AsyncSeriesHook(["arg1"]); sh5.tapAsync("A", (arg1, cb) => { console.log("A +", arg1); cb(); }); sh5.tapAsync("B", () => { console.log("B"); }); sh5.callAsync("hx"); /** function anonymous(arg1, _callback) { "use strict"; var _context; var _x = this._x; function _next0() { var _fn1 = _x[1]; _fn1(arg1, _err1 => { if (_err1) { _callback(_err1); } else { _callback(); } }); } var _fn0 = _x[0]; _fn0(arg1, _err0 => { if (_err0) { _callback(_err0); } else { _next0(); } }); } */ console.log( "6**********************************************************************\n" ); let sh6 = new AsyncSeriesHook(["arg1"]); sh6.tapPromise("A", arg1 => { return new Promise(resolve => { console.log("A + ", arg1); resolve(); }); }); sh6.tapPromise("B", arg1 => { return new Promise(resolve => { console.log("B + ", arg1); resolve(); }); }); sh6.promise("hx"); /** function anonymous(arg1) { "use strict"; return new Promise((_resolve, _reject) => { var _sync = true; function _error(_err) { if (_sync) _resolve( Promise.resolve().then(() => { throw _err; }) ); else _reject(_err); } var _context; var _x = this._x; function _next0() { var _fn1 = _x[1]; var _hasResult1 = false; var _promise1 = _fn1(arg1); if (!_promise1 || !_promise1.then) throw new Error( "Tap function (tapPromise) did not return promise (returned " + _promise1 + ")" ); _promise1.then( _result1 => { _hasResult1 = true; _resolve(); }, _err1 => { if (_hasResult1) throw _err1; _error(_err1); } ); } var _fn0 = _x[0]; var _hasResult0 = false; var _promise0 = _fn0(arg1); if (!_promise0 || !_promise0.then) throw new Error( "Tap function (tapPromise) did not return promise (returned " + _promise0 + ")" ); _promise0.then( _result0 => { _hasResult0 = true; _next0(); }, _err0 => { if (_hasResult0) throw _err0; _error(_err0); } ); _sync = false; }); } */ console.log( "7**********************************************************************\n" ); let sh7 = new AsyncParallelHook(["arg1"]); sh7.tapPromise("A", arg1 => { return new Promise(resolve => { console.log("A + ", arg1); resolve(); }); }); sh7.tapPromise("B", arg1 => { return new Promise(resolve => { console.log("B + ", arg1); resolve(); }); }); sh7.promise("hx"); /** function anonymous(arg1) { "use strict"; return new Promise((_resolve, _reject) => { var _sync = true; function _error(_err) { if (_sync) _resolve( Promise.resolve().then(() => { throw _err; }) ); else _reject(_err); } var _context; var _x = this._x; do { var _counter = 2; var _done = () => { _resolve(); }; if (_counter <= 0) break; var _fn0 = _x[0]; var _hasResult0 = false; var _promise0 = _fn0(arg1); if (!_promise0 || !_promise0.then) throw new Error( "Tap function (tapPromise) did not return promise (returned " + _promise0 + ")" ); _promise0.then( _result0 => { _hasResult0 = true; if (--_counter === 0) _done(); }, _err0 => { if (_hasResult0) throw _err0; if (_counter > 0) { _error(_err0); _counter = 0; } } ); if (_counter <= 0) break; var _fn1 = _x[1]; var _hasResult1 = false; var _promise1 = _fn1(arg1); if (!_promise1 || !_promise1.then) throw new Error( "Tap function (tapPromise) did not return promise (returned " + _promise1 + ")" ); _promise1.then( _result1 => { _hasResult1 = true; if (--_counter === 0) _done(); }, _err1 => { if (_hasResult1) throw _err1; if (_counter > 0) { _error(_err1); _counter = 0; } } ); } while (false); _sync = false; }); } */
Created from: https://npm.runkit.com/tapable
Loading…