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;