import axios from "axios"; import https from "https"; import { redirect } from "next/navigation"; import { isMaintenanceError, MAINTENANCE_PATH } from "@/lib/maintenance"; export const axiosInstance = axios.create({ ...(process.env.NODE_ENV === "development" && { httpsAgent: new https.Agent({ rejectUnauthorized: false }), }), }); /** * @param {object} [options] * @param {boolean} [options.silentMaintenance] در حالت تعمیرات به‌جای ریدایرکت * `null` برگردان. برای فراخوانی‌هایی لازم است که داخل `generateMetadata` یا در * مسیر رندرِ خودِ صفحه‌ی تعمیرات اجرا می‌شوند و ریدایرکت آن‌ها یا بی‌اثر است یا * حلقه می‌سازد (مثل `getStateInfo`). */ export const fetchReq = async (url, headers, options = {}) => { try { const response = await axiosInstance.get(url, headers); return response.data; } catch (error) { if (isMaintenanceError(error)) { if (options.silentMaintenance) return null; redirect(MAINTENANCE_PATH); } console.error("fetchReq error:", error.message); return null; } };