spy
Executes a side-effect function for each signal without modifying the stream. Also exported as tap for RxJS compatibility.
Signature
function spy<T extends Signal>(fn: (signal: T) => void): Operator<T, T>Aliases
spy- Primary nametap- RxJS-compatible alias
Example
import { singlePointer } from "cereb";import { spy } from "cereb/operators";
singlePointer(element) .pipe( spy((signal) => { console.log(signal.value.x, signal.value.y); }) ) .on(handlePointer);Use Cases
Debug Logging
pan(element) .pipe(spy((s) => console.log("Pan:", s.value.phase, s.value.deltaX))) .on(handlePan);Prevent Default
wheel(element, { passive: false }) .pipe( when(zoomMode$), spy((s) => s.value.originalEvent.preventDefault()) ) .on(handleZoomWheel);Analytics / Metrics
pan(element) .pipe( spy((s) => { if (s.value.phase === "end") { analytics.track("pan_complete", { distance: s.value.distance }); } }) ) .on(handlePan);