Files
sim-location-frontend/src/functions/reverseGeocodeSocket.ts
2026-04-18 08:08:47 -04:00

25 lines
748 B
TypeScript

// services/nominatimService.ts
import { useSocketioStore } from 'stores/socketio';
import type { NominatimResponse, NominatimRequest } from 'components/models';
const socketStore = useSocketioStore();
let lastRequestTime = 0;
export const reverseGeocodeRateLimited = async (
lat: number,
lon: number,
): Promise<NominatimResponse> => {
const now = Date.now();
const timeSinceLast = now - lastRequestTime;
// Wait if less than 1000ms has passed
if (timeSinceLast < 1000) {
await new Promise((resolve) => setTimeout(resolve, 1000 - timeSinceLast));
}
const response: NominatimResponse = await socketStore.revGeoCode({latitude: lat, longitude: lon} as NominatimRequest);
lastRequestTime = Date.now();
return response;
};