import memoize from 'memoizee'; export const _findAddress = async ( lon: number, lat: number, locale: () => string ) => { try { const response = await fetch( `https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lon}&format=jsonv2&addressdetails=1&extratags=1&namedetails=1&accept-language=${locale()}`, {} ); const data = await response.json(); console.log({ caller: 'findAddress', lon, lat, data }); return data; } catch (error) { console.error({ caller: 'findAddress', lon, lat, error }); return {}; } }; export const findAddress = memoize(_findAddress, { promise: true, max: 1000, maxAge: 36000000, }); export const getVillageOrTown = (address: any) => { if (address?.address?.village) { return address.address.village; } if (address?.address?.city) { return address.address.city; } return address?.address?.town; };