patronum
Version:
☄️ Effector utility library delivering modularity and convenience
40 lines (39 loc) • 763 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.snapshot = snapshot;
var _effector = require("effector");
function snapshot({
source,
clock,
fn = value => value
}) {
const defaultValue = fn(source.defaultState);
const onSnapshot = clock ? (0, _effector.sample)({
and: [{
source,
clock: clock,
fn
}],
or: {
name: "onSnapshot",
sid: "-imuiws"
}
}) : (0, _effector.sample)({
and: [{
source,
fn
}],
or: {
name: "onSnapshot",
sid: "-imaqbf"
}
});
const $snapshot = (0, _effector.createStore)(defaultValue, {
name: "$snapshot",
sid: "-63s6pn"
});
$snapshot.on(onSnapshot, (_, value) => value);
return $snapshot;
}