// 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 => { 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; };