raid-addons
Version:
Add-ons functions for use with Raid
30 lines (24 loc) • 863 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _utils = require("./utils");
var scopedUpdate = function scopedUpdate(predicate, update) {
var match = (0, _utils.check)(predicate);
return function (state, event) {
var type = typeof event === 'string' || (0, _utils.isFn)(predicate) ? event : event.type;
var checked = (0, _utils.isFn)(predicate) ? predicate(state, event) : match(type);
return checked ? update(state, event) : state;
};
};
var createScope = function createScope(predicate) {
return function (update) {
return scopedUpdate(predicate, update);
};
};
var scope = function scope(predicate, update) {
return (0, _utils.isDefined)(update) ? scopedUpdate(predicate, update) : createScope(predicate);
};
var _default = scope;
exports["default"] = _default;
;