patronum
Version:
☄️ Effector utility library delivering modularity and convenience
35 lines • 648 B
JavaScript
import { createStore, sample } from 'effector';
export function snapshot(_ref) {
var {
source,
clock,
fn = value => value
} = _ref;
var defaultValue = fn(source.defaultState);
var onSnapshot = clock ? sample({
and: [{
source,
clock: clock,
fn
}],
or: {
name: "onSnapshot",
sid: "-imuiws"
}
}) : sample({
and: [{
source,
fn
}],
or: {
name: "onSnapshot",
sid: "-imaqbf"
}
});
var $snapshot = createStore(defaultValue, {
name: "$snapshot",
sid: "-63s6pn"
});
$snapshot.on(onSnapshot, (_, value) => value);
return $snapshot;
}