// composables/useApi.js
export function useApi() {
const nuxtApp = useNuxtApp();
const setOptions = (options) => {
options ||= {};
options.onResponse = ({ response, request }) => {
if (response.status >= 400) {
console.log(response.status, request);
throw createError({
statusCode: response.status,
statusMessage: request,
});
}
};
return options;
};
const fetch = (url, options) => {
return useFetch(url, {
...setOptions(options),
$fetch: nuxtApp.$api,
});
};
const get = (url, options) => {
return nuxtApp.$api(url, {
...setOptions(options),
});
};
const post = (url, options) => {
return nuxtApp.$api(url, {
...setOptions(options),
method: 'POST',
});
};
const put = (url, options) => {
return nuxtApp.$api(url, {
...setOptions(options),
method: 'PUT',
});
};
return {
fetch,
get,
post,
put,
};
}
// composables/useApi.js
export function useApi() {
const nuxtApp = useNuxtApp();
const setOptions = (options) => {
options ||= {};
options.onResponse = ({ response, request }) => {
if (response.status >= 400) {
console.log(response.status, request);
throw createError({
statusCode: response.status,
statusMessage: request,
});
}
};
return options;
};
const fetch = (url, options) => {
return useFetch(url, {
...setOptions(options),
$fetch: nuxtApp.$api,
});
};
const get = (url, options) => {
return nuxtApp.$api(url, {
...setOptions(options),
});
};
const post = (url, options) => {
return nuxtApp.$api(url, {
...setOptions(options),
method: 'POST',
});
};
const put = (url, options) => {
return nuxtApp.$api(url, {
...setOptions(options),
method: 'PUT',
});
};
return {
fetch,
get,
post,
put,
};
}