import isUndefined from 'lodash/isUndefined' // Returns the coords as numbers in the shape { lat, lng }, mainly in use for google maps // Can optionally pass in options.return === 'string' to // return strings (like for backend) export const toLatLng = ( coords: { lat?: string | number lng?: string | number lon?: string | number latitude?: string | number longitude?: string | number }, options?: { return: 'string' }, ): { lat: number | string lng: number | string } => { let _lat: string | number | null = null let _lng: string | number | null = null if (!coords) { return { lat: Number(_lat), lng: Number(_lng) } } // Assigning latitude if (!isUndefined(coords.latitude)) { _lat = coords.latitude } else if (!isUndefined(coords.lat)) { _lat = coords.lat } // Assigning longitude if (!isUndefined(coords.longitude)) { _lng = coords.longitude } else if (!isUndefined(coords.lng)) { _lng = coords.lng } else if (!isUndefined(coords.lon)) { _lng = coords.lon } if (options) { if (options.return === 'string') { return { lat: String(_lat), lng: String(_lng) } } } return { lat: Number(_lat).toFixed(5), lng: Number(_lng).toFixed(5) } }