UNPKG

use-api-vue

Version:

AJAX request for Vue 3 using global configuration

59 lines (53 loc) 3.98 kB
import * as axiosBaseTypes from 'axios'; import { AxiosError, AxiosRequestConfig } from 'axios'; import * as vue from 'vue'; import { onUnmounted } from 'vue'; type ApiResponse<Data = any, DataParams = any> = axiosBaseTypes.AxiosResponse<Data, DataParams>; type ApiRequestConfig<DataParams = any> = axiosBaseTypes.AxiosRequestConfig<DataParams>; interface ConfigOptions extends ApiRequestConfig { onCancelCallback?: typeof onUnmounted; } interface KeyValue { [key: string]: string | number | undefined; } type requestConfigType = Omit<ApiRequestConfig, 'url' | 'method' | 'cancelToken' | 'params' | 'data' | 'paramsSerializer'>; interface ApiClientConfig { extraPostData?: (options: ApiRequestConfig) => KeyValue; onError?: (error: unknown, options: ApiRequestConfig) => void; getError?: (error: unknown, options: ApiRequestConfig) => unknown; requestConfig?: requestConfigType; } declare const axios: axiosBaseTypes.AxiosStatic; declare const axiosTypes: typeof axiosBaseTypes; declare const useApiProvider: (params: ApiClientConfig, id?: string) => void; declare const useApiClient: (id?: string) => ApiClientConfig; declare const getArrayBufferError: <Data = any, DataConfig = any>(error: AxiosError<Data, DataConfig>) => AxiosError<Data, DataConfig>; declare const useGet: (config?: ConfigOptions, id?: string) => <Data = unknown, Params = unknown>(url: string, params?: Params | undefined, config?: ApiRequestConfig<Params> | undefined) => Promise<ApiResponse<Data, Params>>; declare const usePost: (config?: ConfigOptions, id?: string) => <Data = unknown, Params = unknown>(url: string, params?: Params | undefined, config?: ApiRequestConfig<Params> | undefined) => Promise<ApiResponse<Data, Params>>; declare const usePut: (config?: ConfigOptions, id?: string) => <Data = unknown, Params = unknown>(url: string, params?: Params | undefined, config?: ApiRequestConfig<Params> | undefined) => Promise<ApiResponse<Data, Params>>; declare const useDelete: (config?: ConfigOptions, id?: string) => <Data = unknown, Params = unknown>(url: string, params?: Params | undefined, config?: ApiRequestConfig<Params> | undefined) => Promise<ApiResponse<Data, Params>>; declare const useGetRef: <Data = unknown, Params = unknown, Error_1 = unknown>(config?: ConfigOptions, id?: string) => { data: vue.Ref<ApiResponse<Data, Params> | undefined>; error: vue.Ref<Error_1 | undefined>; loading: vue.Ref<boolean>; send: (url: string, params?: Params | undefined, axiosConfig?: AxiosRequestConfig) => Promise<Error_1 | ApiResponse<Data, Params>>; }; declare const usePostRef: <Data = unknown, Params = unknown, Error_1 = unknown>(config?: ConfigOptions, id?: string) => { data: vue.Ref<ApiResponse<Data, Params> | undefined>; error: vue.Ref<Error_1 | undefined>; loading: vue.Ref<boolean>; send: (url: string, params?: Params | undefined, axiosConfig?: AxiosRequestConfig) => Promise<Error_1 | ApiResponse<Data, Params>>; }; declare const usePutRef: <Data = unknown, Params = unknown, Error_1 = unknown>(config?: ConfigOptions, id?: string) => { data: vue.Ref<ApiResponse<Data, Params> | undefined>; error: vue.Ref<Error_1 | undefined>; loading: vue.Ref<boolean>; send: (url: string, params?: Params | undefined, axiosConfig?: AxiosRequestConfig) => Promise<Error_1 | ApiResponse<Data, Params>>; }; declare const useDeleteRef: <Data = unknown, Params = unknown, Error_1 = unknown>(config?: ConfigOptions, id?: string) => { data: vue.Ref<ApiResponse<Data, Params> | undefined>; error: vue.Ref<Error_1 | undefined>; loading: vue.Ref<boolean>; send: (url: string, params?: Params | undefined, axiosConfig?: AxiosRequestConfig) => Promise<Error_1 | ApiResponse<Data, Params>>; }; export { ApiClientConfig, ApiRequestConfig, ApiResponse, ConfigOptions, axios, axiosTypes, getArrayBufferError, useApiClient, useApiProvider, useDelete, useDeleteRef, useGet, useGetRef, usePost, usePostRef, usePut, usePutRef };