/** * Возвращает функцию fetchData, вызывающую apiMethod с переданными аргументами и оборачивающую ошибки в createError. * @param key - ключ для идентификации запроса в сообщении об ошибке * @param apiMethod - асинхронная функция API * @param apiArgs - аргументы для apiMethod */ export function useApiFetcher( key: string | null, apiMethod: (...args: any[]) => Promise, ...apiArgs: any[] ) { return async function fetchData() { try { return await apiMethod(...apiArgs); } catch (err) { throw createError({ statusCode: 500, statusMessage: 'Fetch Error', message: `Error fetching ${key}: ${err instanceof Error ? err.message : 'An unknown error occurred'}`, }); } }; }