import axios from 'axios' let pendingRequest: Promise | null = null export async function ipapi() { const apiData = sessionStorage.getItem('ipapi') if (apiData) { return JSON.parse(apiData) } // Deduplicate concurrent calls — share a single in-flight request if (!pendingRequest) { pendingRequest = axios.get('https://ipapi.co/json/').then(res => { const data = JSON.stringify(res.data) sessionStorage.setItem('ipapi', data) pendingRequest = null return res.data }).catch(err => { pendingRequest = null throw err }) } return pendingRequest }