UNPKG

patronum

Version:

☄️ Effector utility library delivering modularity and convenience

32 lines 592 B
import { is, sample, createStore } from 'effector'; export function once(unitOrConfig) { var source; var reset; if (is.unit(unitOrConfig)) { source = unitOrConfig; } else { ({ source, reset } = unitOrConfig); } var $canTrigger = createStore(true, { name: "$canTrigger", sid: "ys2jl0" }); var trigger = sample({ and: [{ source, filter: $canTrigger }], or: { name: "trigger", sid: "e3xto3" } }); $canTrigger.on(trigger, () => false); if (reset) { $canTrigger.reset(reset); } return trigger; }