patronum
Version:
☄️ Effector utility library delivering modularity and convenience
31 lines • 692 B
JavaScript
import { createEffect, restore, sample, is } from 'effector';
var defaultNow = () => Date.now();
export function time(args) {
var argsShape = is.unit(args) ? {
clock: args
} : args;
var {
clock,
getNow,
initial
} = argsShape;
var timeReader = getNow !== null && getNow !== void 0 ? getNow : defaultNow;
var readNowFx = createEffect(timeReader, {
name: "readNowFx",
sid: "ito90c"
});
var $time = restore(readNowFx, initial !== null && initial !== void 0 ? initial : timeReader(), {
name: "$time",
sid: "-k3vl4d"
});
sample({
and: [{
clock,
target: readNowFx
}],
or: {
sid: "rul0o2"
}
});
return $time;
}