raid-addons
Version:
Add-ons functions for use with Raid
25 lines (21 loc) • 678 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _utils = require("./utils");
/**
* Creates a hook that runs on every emit and matches on an event
* type predicate
*/
var hook = function hook(fn) {
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var predicate = opts.predicate || null;
var match = (0, _utils.check)(predicate);
return function (state, event) {
var type = typeof event === 'string' || (0, _utils.isFn)(predicate) ? event : event.type;
return match(type) ? fn(state, event) : state;
};
};
var _default = hook;
exports["default"] = _default;
;