index.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { service } from './service'
  2. import { config } from './config'
  3. const { default_headers } = config
  4. const request = (option: any) => {
  5. const { headersType, headers, ...otherOption } = option
  6. const langStore = JSON.parse(localStorage.getItem('lang') || '{}')
  7. return service({
  8. ...otherOption,
  9. headers: {
  10. 'Content-Type': headersType || default_headers,
  11. Lang: langStore.v.replace(/"/g, ''),
  12. ...headers
  13. }
  14. })
  15. }
  16. export default {
  17. get: async <T = any>(option: any) => {
  18. const res = await request({ method: 'GET', ...option })
  19. return res.data as unknown as T
  20. },
  21. post: async <T = any>(option: any) => {
  22. const res = await request({ method: 'POST', ...option })
  23. return res.data as unknown as T
  24. },
  25. postOriginal: async (option: any) => {
  26. const res = await request({ method: 'POST', ...option })
  27. return res
  28. },
  29. delete: async <T = any>(option: any) => {
  30. const res = await request({ method: 'DELETE', ...option })
  31. return res.data as unknown as T
  32. },
  33. put: async <T = any>(option: any) => {
  34. const res = await request({ method: 'PUT', ...option })
  35. return res.data as unknown as T
  36. },
  37. download: async <T = any>(option: any) => {
  38. const res = await request({ method: 'GET', responseType: 'blob', ...option })
  39. return res as unknown as Promise<T>
  40. },
  41. upload: async <T = any>(option: any) => {
  42. option.headersType = 'multipart/form-data'
  43. const res = await request({ method: 'POST', ...option })
  44. return res as unknown as Promise<T>
  45. }
  46. }