github.com/nektos/act@v0.2.63/pkg/runner/testdata/actions/node12/node_modules/before-after-hook/index.js (about) 1 var register = require("./lib/register"); 2 var addHook = require("./lib/add"); 3 var removeHook = require("./lib/remove"); 4 5 // bind with array of arguments: https://stackoverflow.com/a/21792913 6 var bind = Function.bind; 7 var bindable = bind.bind(bind); 8 9 function bindApi(hook, state, name) { 10 var removeHookRef = bindable(removeHook, null).apply( 11 null, 12 name ? [state, name] : [state] 13 ); 14 hook.api = { remove: removeHookRef }; 15 hook.remove = removeHookRef; 16 ["before", "error", "after", "wrap"].forEach(function (kind) { 17 var args = name ? [state, kind, name] : [state, kind]; 18 hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); 19 }); 20 } 21 22 function HookSingular() { 23 var singularHookName = "h"; 24 var singularHookState = { 25 registry: {}, 26 }; 27 var singularHook = register.bind(null, singularHookState, singularHookName); 28 bindApi(singularHook, singularHookState, singularHookName); 29 return singularHook; 30 } 31 32 function HookCollection() { 33 var state = { 34 registry: {}, 35 }; 36 37 var hook = register.bind(null, state); 38 bindApi(hook, state); 39 40 return hook; 41 } 42 43 var collectionHookDeprecationMessageDisplayed = false; 44 function Hook() { 45 if (!collectionHookDeprecationMessageDisplayed) { 46 console.warn( 47 '[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4' 48 ); 49 collectionHookDeprecationMessageDisplayed = true; 50 } 51 return HookCollection(); 52 } 53 54 Hook.Singular = HookSingular.bind(); 55 Hook.Collection = HookCollection.bind(); 56 57 module.exports = Hook; 58 // expose constructors as a named property for TypeScript 59 module.exports.Hook = Hook; 60 module.exports.Singular = Hook.Singular; 61 module.exports.Collection = Hook.Collection;