// static/js/api/baseApi.js
import { API_BASE_URL } from '../store/configStore.js';
export async function request(endpoint, options = {}) {
const url = `${API_BASE_URL}${endpoint}`;
const defaultHeaders = {
'Content-Type': 'application/json',
};
const config = {
...options,
headers: {
...defaultHeaders,
...options.headers,
},
};
try {
const response = await fetch(url, config);
if (!response.ok) {
const errorBody = await response.text();
throw new Error(`HTTP Error ${response.status}: ${errorBody}`);
}
// Return text if format is yaml, otherwise try to parse JSON
const contentType = response.headers.get('content-type');
if (contentType && contentType.includes('application/json')) {
return await response.json();
}
return await response.text();
} catch (error) {
console.error(`API Request failed for ${endpoint}:`, error);
throw error;
}
}