@lifaon/rx-js-light
Version:
Blazing fast Observables
19 lines (18 loc) • 686 B
JavaScript
import {createErrorNotification} from "../../../../../../misc/notifications/built-in/error/create-error-notification.mjs";
import {createNextNotification} from "../../../../../../misc/notifications/built-in/next/create-next-notification.mjs";
export function fromGeolocationPosition(options) {
return emit => {
let running = true;
const watchId = navigator.geolocation.watchPosition(position => {
emit(createNextNotification(position));
}, positionError => {
emit(createErrorNotification(positionError));
}, options);
return () => {
if (running) {
running = false;
navigator.geolocation.clearWatch(watchId);
}
};
};
}