1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| class HttpRequestClass { request<T = any>(url: string, method: Methods, data: any, options?: UseFetchOptions<T>, userOptions?:userOptions) { return new Promise((resolve, reject) => { const newOptions: UseFetchOptions<T> = { baseURL: userOptions?.baseUrl ? userOptions?.baseUrl : baseURL, method: method, ...options, }
if (method === 'GET' || method === 'DELETE') { newOptions.params = data?.params newOptions.query = Object.assign(newOptions.query as Object, data?.query) } if (method === 'POST' || method === 'PUT') { newOptions.body = data?.body newOptions.query = Object.assign(newOptions.query as Object, data?.query) } useFetch(url, newOptions) .then((res) => { if (res.error.value) { throw new Error(res.error.value.message) } resolve(res) }) .catch((error) => { reject(error) }) }) }
get<T = any>(url: string, params?: any, options?: UseFetchOptions<T>, option?:userOptions) { return this.request(url, 'GET', params, options,option) }
post<T = any>(url: string, data: any, options?: UseFetchOptions<T>, option?:userOptions) { return this.request(url, 'POST', data, options,option) }
Put<T = any>(url: string, data: any, options?: UseFetchOptions<T>, option?:userOptions) { return this.request(url, 'PUT', data, options,option) }
Delete<T = any>(url: string, params: any, options?: UseFetchOptions<T>, option?:userOptions) { return this.request(url, 'DELETE', params, options,option) } }
|