patronum
Version:
☄️ Effector utility library delivering modularity and convenience
38 lines (37 loc) • 715 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.once = once;
var _effector = require("effector");
function once(unitOrConfig) {
let source;
let reset;
if (_effector.is.unit(unitOrConfig)) {
source = unitOrConfig;
} else {
({
source,
reset
} = unitOrConfig);
}
const $canTrigger = (0, _effector.createStore)(true, {
name: "$canTrigger",
sid: "ys2jl0"
});
const trigger = (0, _effector.sample)({
and: [{
source,
filter: $canTrigger
}],
or: {
name: "trigger",
sid: "e3xto3"
}
});
$canTrigger.on(trigger, () => false);
if (reset) {
$canTrigger.reset(reset);
}
return trigger;
}
;