diff --git a/src/axios.ts b/src/axios.ts index bd53681..2984da4 100644 --- a/src/axios.ts +++ b/src/axios.ts @@ -1,12 +1,16 @@ +import { + CancelToken, + CancelTokenConstructor, + isCancel, +} from './request/cancel'; +import { isAxiosError } from './request/createError'; +import { mergeConfig } from './core/mergeConfig'; import { AxiosDomainRequest } from './core/AxiosDomain'; import Axios, { AxiosConstructor, AxiosRequestConfig, AxiosRequestHeaders, } from './core/Axios'; -import { CancelToken, CancelTokenConstructor, isCancel } from './core/cancel'; -import { isAxiosError } from './core/createError'; -import { mergeConfig } from './core/mergeConfig'; import { createAdapter } from './adapter'; import defaults from './defaults'; import { version } from './version'; diff --git a/src/core/Axios.ts b/src/core/Axios.ts index f5d3a5d..65a5352 100644 --- a/src/core/Axios.ts +++ b/src/core/Axios.ts @@ -2,6 +2,9 @@ import { buildURL } from '../helpers/buildURL'; import { isAbsoluteURL } from '../helpers/isAbsoluteURL'; import { combineURL } from '../helpers/combineURL'; import { isString } from '../helpers/isTypes'; +import { CancelToken } from '../request/cancel'; +import { dispatchRequest } from '../request/dispatchRequest'; +import { AxiosTransformer } from '../request/transformData'; import { AxiosAdapter, AxiosAdapterRequestMethod, @@ -11,9 +14,6 @@ import { } from '../adapter'; import InterceptorManager, { Interceptor } from './InterceptorManager'; import { mergeConfig } from './mergeConfig'; -import { CancelToken } from './cancel'; -import { dispatchRequest } from './dispatchRequest'; -import { AxiosTransformer } from './transformData'; import AxiosDomain from './AxiosDomain'; /** diff --git a/src/index.ts b/src/index.ts index b89fd58..1e33c5d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -36,9 +36,9 @@ export type { AxiosStatic, } from './axios'; -export { CancelToken, isCancel } from './core/cancel'; +export { CancelToken, isCancel } from './request/cancel'; +export { isAxiosError } from './request/createError'; export { default as Axios } from './core/Axios'; -export { isAxiosError } from './core/createError'; export { createAdapter } from './adapter'; export { version } from './version'; diff --git a/src/core/cancel.ts b/src/request/cancel.ts similarity index 100% rename from src/core/cancel.ts rename to src/request/cancel.ts diff --git a/src/core/createError.ts b/src/request/createError.ts similarity index 91% rename from src/core/createError.ts rename to src/request/createError.ts index d965d4c..5d51825 100644 --- a/src/core/createError.ts +++ b/src/request/createError.ts @@ -1,6 +1,10 @@ import { cleanStack } from '../helpers/error'; +import { + AxiosRequestConfig, + AxiosResponse, + AxiosResponseError, +} from '../core/Axios'; import { AxiosAdapterPlatformTask } from '../adapter'; -import { AxiosRequestConfig, AxiosResponse, AxiosResponseError } from './Axios'; export type AxiosErrorResponse = AxiosResponse | AxiosResponseError; diff --git a/src/core/dispatchRequest.ts b/src/request/dispatchRequest.ts similarity index 93% rename from src/core/dispatchRequest.ts rename to src/request/dispatchRequest.ts index 650130e..b5a08b0 100644 --- a/src/core/dispatchRequest.ts +++ b/src/request/dispatchRequest.ts @@ -1,13 +1,17 @@ import { isFunction, isString } from '../helpers/isTypes'; import { assert } from '../helpers/error'; +import { requestMethodWithDataNames } from '../core/AxiosDomain'; +import { + AxiosRequestConfig, + AxiosRequestMethod, + AxiosResponse, +} from '../core/Axios'; import { Cancel, isCancel, isCancelToken } from './cancel'; import { flattenHeaders } from './flattenHeaders'; import { AxiosTransformer, transformData } from './transformData'; import { request } from './request'; -import { AxiosRequestConfig, AxiosRequestMethod, AxiosResponse } from './Axios'; import { transformURL } from './transformURL'; import { AxiosErrorResponse } from './createError'; -import { requestMethodWithDataNames } from './AxiosDomain'; /** * 可以携带 data 的请求方法 diff --git a/src/core/flattenHeaders.ts b/src/request/flattenHeaders.ts similarity index 88% rename from src/core/flattenHeaders.ts rename to src/request/flattenHeaders.ts index a480236..44880fe 100644 --- a/src/core/flattenHeaders.ts +++ b/src/request/flattenHeaders.ts @@ -1,6 +1,6 @@ import { isPlainObject } from '../helpers/isTypes'; import { ignore } from '../helpers/ignore'; -import { AxiosRequestConfig, AxiosRequestHeaders } from './Axios'; +import { AxiosRequestConfig, AxiosRequestHeaders } from '../core/Axios'; export function flattenHeaders( config: AxiosRequestConfig, diff --git a/src/core/generateType.ts b/src/request/generateType.ts similarity index 87% rename from src/core/generateType.ts rename to src/request/generateType.ts index d3f7b28..030d846 100644 --- a/src/core/generateType.ts +++ b/src/request/generateType.ts @@ -1,5 +1,5 @@ +import { AxiosRequestConfig } from '../core/Axios'; import { AxiosAdapterRequestType } from '../adapter'; -import { AxiosRequestConfig } from './Axios'; export function generateType(config: AxiosRequestConfig) { let requestType: AxiosAdapterRequestType = 'request'; diff --git a/src/core/request.ts b/src/request/request.ts similarity index 97% rename from src/core/request.ts rename to src/request/request.ts index 7b922f1..28d1690 100644 --- a/src/core/request.ts +++ b/src/request/request.ts @@ -1,4 +1,9 @@ import { isFunction, isPlainObject } from '../helpers/isTypes'; +import { + AxiosRequestConfig, + AxiosResponse, + AxiosResponseError, +} from '../core/Axios'; import { AxiosAdapterRequestConfig, AxiosAdapterRequestMethod, @@ -6,7 +11,7 @@ import { AxiosAdapterResponseError, AxiosAdapterPlatformTask, } from '../adapter'; -import { AxiosRequestConfig, AxiosResponse, AxiosResponseError } from './Axios'; + import { isCancelToken } from './cancel'; import { AxiosErrorResponse, createError } from './createError'; import { generateType } from './generateType'; diff --git a/src/core/transformData.ts b/src/request/transformData.ts similarity index 100% rename from src/core/transformData.ts rename to src/request/transformData.ts diff --git a/src/core/transformURL.ts b/src/request/transformURL.ts similarity index 75% rename from src/core/transformURL.ts rename to src/request/transformURL.ts index a0e1c8d..b6f4ab8 100644 --- a/src/core/transformURL.ts +++ b/src/request/transformURL.ts @@ -3,17 +3,15 @@ import { buildURL } from '../helpers/buildURL'; import { combineURL } from '../helpers/combineURL'; import { dynamicURL } from '../helpers/dynamicURL'; import { isAbsoluteURL } from '../helpers/isAbsoluteURL'; -import { AxiosRequestConfig } from './Axios'; +import { AxiosRequestConfig } from '../core/Axios'; export function transformURL(config: AxiosRequestConfig) { let url = config.url ?? ''; if (!isAbsoluteURL(url)) url = combineURL(config.baseURL ?? '', url); - url = dynamicURL( - url, - config.params, - isPlainObject(config.data) ? config.data : {}, - ); + + const data = isPlainObject(config.data) ? config.data : {}; + url = dynamicURL(url, config.params, data); url = buildURL(url, config.params, config.paramsSerializer); return url; diff --git a/test/axios.api.test.ts b/test/axios.api.test.ts index 80196e3..7256c32 100644 --- a/test/axios.api.test.ts +++ b/test/axios.api.test.ts @@ -1,11 +1,11 @@ import { describe, test, expect } from 'vitest'; +import { eachMethods } from 'scripts/test.utils'; +import { CancelToken, isCancel } from '@/request/cancel'; +import { isAxiosError } from '@/request/createError'; import Axios from '@/core/Axios'; -import { CancelToken, isCancel } from '@/core/cancel'; -import { isAxiosError } from '@/core/createError'; +import defaults from '@/defaults'; import { createAdapter } from '@/adapter'; import axios from '@/axios'; -import defaults from '@/defaults'; -import { eachMethods } from 'scripts/test.utils'; describe('src/axios.ts', () => { test('应该有这些静态属性', () => { diff --git a/test/core/mergeConfig.test.ts b/test/core/mergeConfig.test.ts index ccf4c8b..b3c3423 100644 --- a/test/core/mergeConfig.test.ts +++ b/test/core/mergeConfig.test.ts @@ -1,7 +1,7 @@ import { describe, test, expect, vi } from 'vitest'; import { ignore } from '@/helpers/ignore'; +import { CancelToken } from '@/request/cancel'; import { mergeConfig } from '@/core/mergeConfig'; -import { CancelToken } from '@/core/cancel'; describe('src/core/mergeConfig.ts', () => { test('应该支持空参数', () => { diff --git a/test/core/cancel.test.ts b/test/request/cancel.test.ts similarity index 97% rename from test/core/cancel.test.ts rename to test/request/cancel.test.ts index 21fd554..b123aab 100644 --- a/test/core/cancel.test.ts +++ b/test/request/cancel.test.ts @@ -6,16 +6,16 @@ import { noop, asyncTimeout, } from 'scripts/test.utils'; -import axios from 'src/axios'; import { Cancel, isCancel, CancelToken, isCancelToken, CancelAction, -} from '@/core/cancel'; +} from '@/request/cancel'; +import axios from '@/axios'; -describe('src/helpers/cancel.ts', () => { +describe('src/request/cancel.ts', () => { test('应该支持空参数', () => { const c = new Cancel(); diff --git a/test/core/createError.test.ts b/test/request/createError.test.ts similarity index 89% rename from test/core/createError.test.ts rename to test/request/createError.test.ts index aedfcb4..b9b719e 100644 --- a/test/core/createError.test.ts +++ b/test/request/createError.test.ts @@ -1,8 +1,8 @@ import { describe, test, expect } from 'vitest'; import { checkStack } from 'scripts/test.utils'; -import { createError, isAxiosError } from '@/core/createError'; +import { createError, isAxiosError } from '@/request/createError'; -describe('src/core/createError.ts', () => { +describe('src/request/createError.ts', () => { test('应该支持空参数', () => { const c = {}; const r = {} as any; diff --git a/test/core/dispatchRequest.test.ts b/test/request/dispatchRequest.test.ts similarity index 97% rename from test/core/dispatchRequest.test.ts rename to test/request/dispatchRequest.test.ts index f218ade..fc31158 100644 --- a/test/core/dispatchRequest.test.ts +++ b/test/request/dispatchRequest.test.ts @@ -1,6 +1,6 @@ import { describe, test, expect, vi } from 'vitest'; import { asyncNext, mockAdapter, testEachMethods } from 'scripts/test.utils'; -import { dispatchRequest } from '@/core/dispatchRequest'; +import { dispatchRequest } from '@/request/dispatchRequest'; import { requestMethodNames, requestMethodWithDataNames, @@ -10,7 +10,7 @@ import { import axios from '@/axios'; import _defaults from '@/defaults'; -describe('src/core/dispatchRequest.ts', () => { +describe('src/request/dispatchRequest.ts', () => { const defaults = { ..._defaults, adapter: mockAdapter(), diff --git a/test/core/flattenHeaders.test.ts b/test/request/flattenHeaders.test.ts similarity index 94% rename from test/core/flattenHeaders.test.ts rename to test/request/flattenHeaders.test.ts index fcb7e0d..77156c2 100644 --- a/test/core/flattenHeaders.test.ts +++ b/test/request/flattenHeaders.test.ts @@ -1,8 +1,8 @@ import { describe, test, expect } from 'vitest'; -import { flattenHeaders } from '@/core/flattenHeaders'; import { eachMethods, methods } from 'scripts/test.utils'; +import { flattenHeaders } from '@/request/flattenHeaders'; -describe('src/core/flattenHeaders.ts', () => { +describe('src/request/flattenHeaders.ts', () => { const baseHeaders = Object.fromEntries( methods.map((k) => [k, { v1: `${k}1`, v2: `${k}2` }]), ) as unknown as Record<(typeof methods)[number], AnyObject>; diff --git a/test/core/generateType.test.ts b/test/request/generateType.test.ts similarity index 82% rename from test/core/generateType.test.ts rename to test/request/generateType.test.ts index 3d5a171..75d81d2 100644 --- a/test/core/generateType.test.ts +++ b/test/request/generateType.test.ts @@ -1,8 +1,8 @@ import { describe, test, expect } from 'vitest'; -import { generateType } from '@/core/generateType'; import { testEachMethods } from 'scripts/test.utils'; +import { generateType } from '@/request/generateType'; -describe('src/core/generateType.ts', () => { +describe('src/request/generateType.ts', () => { testEachMethods('%s 应该是一个 reuqest', (k) => { expect(generateType({ method: k })).toBe('request'); }); diff --git a/test/core/request.test.ts b/test/request/request.test.ts similarity index 98% rename from test/core/request.test.ts rename to test/request/request.test.ts index 964cf18..4288b3d 100644 --- a/test/core/request.test.ts +++ b/test/request/request.test.ts @@ -7,10 +7,10 @@ import { mockAdapterFail, testEachMethods, } from 'scripts/test.utils'; -import { request } from '@/core/request'; +import { request } from '@/request/request'; import axios from '@/axios'; -describe('src/core/request.ts', () => { +describe('src/request/request.ts', () => { testEachMethods('%s 方法应该返回正确的响应体结构', (k) => { const c = { adapter: mockAdapter(), diff --git a/test/core/transformData.test.ts b/test/request/transformData.test.ts similarity index 90% rename from test/core/transformData.test.ts rename to test/request/transformData.test.ts index 9abceae..e15776a 100644 --- a/test/core/transformData.test.ts +++ b/test/request/transformData.test.ts @@ -1,7 +1,7 @@ import { describe, test, expect } from 'vitest'; -import { transformData } from '@/core/transformData'; +import { transformData } from '@/request/transformData'; -describe('src/core/transformData.ts', () => { +describe('src/request/transformData.ts', () => { test('应该支持空配置', () => { expect(transformData()).toBeUndefined(); expect(transformData({})).toEqual({}); diff --git a/test/core/transformURL.test.ts b/test/request/transformURL.test.ts similarity index 94% rename from test/core/transformURL.test.ts rename to test/request/transformURL.test.ts index 5e09208..3df99c7 100644 --- a/test/core/transformURL.test.ts +++ b/test/request/transformURL.test.ts @@ -1,7 +1,7 @@ import { describe, test, expect } from 'vitest'; -import { transformURL } from '@/core/transformURL'; +import { transformURL } from '@/request/transformURL'; -describe('src/core/transformURL.ts', () => { +describe('src/request/transformURL.ts', () => { test('应该支持空配置', () => { expect(transformURL({})).toBe(''); expect(transformURL({ baseURL: 'http://api.com' })).toBe('http://api.com');