提交 61769566 作者: 方治民

chore: 常规依赖升级,axios 升级到 1.x

上级 f2a7cbfb
...@@ -66,24 +66,24 @@ ...@@ -66,24 +66,24 @@
} }
}, },
"dependencies": { "dependencies": {
"@dcloudio/uni-app": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-app": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-app-plus": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-app-plus": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-components": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-components": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-h5": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-h5": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-mp-alipay": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-mp-alipay": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-mp-baidu": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-mp-baidu": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-mp-jd": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-mp-jd": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-mp-kuaishou": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-mp-kuaishou": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-mp-lark": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-mp-lark": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-mp-qq": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-mp-qq": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-mp-toutiao": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-mp-toutiao": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-mp-weixin": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-mp-weixin": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-quickapp-webview": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-quickapp-webview": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-ui": "^1.4.27", "@dcloudio/uni-ui": "^1.4.27",
"@faker-js/faker": "^7.6.0", "@faker-js/faker": "^7.6.0",
"@vue/runtime-core": "^3.2.47", "@vue/runtime-core": "^3.2.47",
"@vueuse/core": "^10.1.0", "@vueuse/core": "^10.1.2",
"axios": "^0.26.1", "axios": "^1.4.0",
"crypto-js": "^4.1.1", "crypto-js": "^4.1.1",
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
...@@ -99,24 +99,24 @@ ...@@ -99,24 +99,24 @@
}, },
"devDependencies": { "devDependencies": {
"@antfu/eslint-config": "^0.38.5", "@antfu/eslint-config": "^0.38.5",
"@commitlint/cli": "^17.6.1", "@commitlint/cli": "^17.6.3",
"@commitlint/config-conventional": "^17.6.1", "@commitlint/config-conventional": "^17.6.3",
"@dcloudio/types": "^3.3.3", "@dcloudio/types": "^3.3.3",
"@dcloudio/uni-automator": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-automator": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-cli-shared": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-cli-shared": "3.0.0-alpha-3080220230428001",
"@dcloudio/uni-helper-json": "^1.0.13", "@dcloudio/uni-helper-json": "^1.0.13",
"@dcloudio/uni-stacktracey": "3.0.0-alpha-3080120230425001", "@dcloudio/uni-stacktracey": "3.0.0-alpha-3080220230428001",
"@dcloudio/vite-plugin-uni": "3.0.0-alpha-3080120230425001", "@dcloudio/vite-plugin-uni": "3.0.0-alpha-3080220230428001",
"@iconify/json": "^2.2.56", "@iconify/json": "^2.2.60",
"@types/crypto-js": "^4.1.1", "@types/crypto-js": "^4.1.1",
"@types/lodash-es": "^4.17.7", "@types/lodash-es": "^4.17.7",
"@types/node": "^18.16.2", "@types/node": "^18.16.3",
"@types/prettier": "^2.7.2", "@types/prettier": "^2.7.2",
"@types/qs": "^6.9.7", "@types/qs": "^6.9.7",
"@types/stompjs": "^2.3.5", "@types/stompjs": "^2.3.5",
"@types/urijs": "^1.19.19", "@types/urijs": "^1.19.19",
"@typescript-eslint/eslint-plugin": "^5.59.1", "@typescript-eslint/eslint-plugin": "^5.59.2",
"@typescript-eslint/parser": "^5.59.1", "@typescript-eslint/parser": "^5.59.2",
"commitizen": "^4.3.0", "commitizen": "^4.3.0",
"conventional-changelog-cli": "^2.2.2", "conventional-changelog-cli": "^2.2.2",
"cz-conventional-changelog": "^3.3.0", "cz-conventional-changelog": "^3.3.0",
...@@ -143,18 +143,18 @@ ...@@ -143,18 +143,18 @@
"rimraf": "^5.0.0", "rimraf": "^5.0.0",
"sass": "^1.62.1", "sass": "^1.62.1",
"sort-package-json": "^2.4.1", "sort-package-json": "^2.4.1",
"stylelint": "^15.6.0", "stylelint": "^15.6.1",
"stylelint-config-html": "^1.1.0", "stylelint-config-html": "^1.1.0",
"stylelint-config-recommended": "^12.0.0", "stylelint-config-recommended": "^12.0.0",
"stylelint-config-standard": "^33.0.0", "stylelint-config-standard": "^33.0.0",
"stylelint-order": "^6.0.3", "stylelint-order": "^6.0.3",
"typescript": "^5.0.4", "typescript": "^5.0.4",
"unocss": "^0.50.8", "unocss": "^0.51.8",
"unocss-preset-weapp": "^0.5.3", "unocss-preset-weapp": "^0.6.0",
"unplugin-auto-import": "^0.15.3", "unplugin-auto-import": "^0.15.3",
"unplugin-vue-components": "^0.24.1", "unplugin-vue-components": "^0.24.1",
"vite": "^4.3.3", "vite": "^4.3.4",
"vue-eslint-parser": "^9.1.1" "vue-eslint-parser": "^9.2.0"
}, },
"engines": { "engines": {
"node": ">=16", "node": ">=16",
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -10,12 +10,17 @@ ...@@ -10,12 +10,17 @@
onMounted(() => { onMounted(() => {
// test API // test API
API.example.hello.request().then((body) => { API.example.hello
title.value = body .request()
.then((body) => {
title.value = body
console.log('[API]', body, $app.name, $app.version) console.log('[API]', body, $app.name, $app.version)
Message.toast(body) Message.toast(body)
}) })
.catch((err) => {
console.error('[API]', err)
})
}) })
function surprise() { function surprise() {
......
import type { AxiosError, AxiosInstance, AxiosPromise, AxiosRequestConfig, AxiosResponse } from 'axios' import type { AxiosInstance, AxiosPromise, AxiosResponse, InternalAxiosRequestConfig } from 'axios'
import axios, { AxiosError } from 'axios'
import type { RequestOptions, Result, UploadFileParams } from '/#/axios' import type { RequestOptions, Result, UploadFileParams } from '/#/axios'
import type { CreateAxiosOptions } from './axiosTransform' import type { CreateAxiosOptions } from './axiosTransform'
import axios from 'axios'
import createError from 'axios/lib/core/createError'
import qs from 'qs' import qs from 'qs'
import { AxiosCanceler } from './axiosCancel' import { AxiosCanceler } from './axiosCancel'
import { isFunction } from '/@/utils/is' import { isFunction } from '/@/utils/is'
...@@ -34,16 +33,19 @@ axios.defaults.adapter = function (config: CreateAxiosOptions): AxiosPromise<any ...@@ -34,16 +33,19 @@ axios.defaults.adapter = function (config: CreateAxiosOptions): AxiosPromise<any
}) })
}, },
fail: (response) => { fail: (response) => {
// @ts-expect-error try {
const { errMsg, statusCode } = response const { errMsg } = response
const error = createError(errMsg, config, statusCode, request, { const isTimeout = errMsg.includes('timeout')
config, const error = AxiosError.from(
message: errMsg, errMsg,
data: undefined, isTimeout ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,
...response, config,
}) request,
)
reject(error) reject(error)
} catch (error) {
reject(error)
}
}, },
}) })
}) })
...@@ -114,7 +116,7 @@ export class VAxios { ...@@ -114,7 +116,7 @@ export class VAxios {
const axiosCanceler = new AxiosCanceler() const axiosCanceler = new AxiosCanceler()
// Request interceptor configuration processing // Request interceptor configuration processing
this.axiosInstance.interceptors.request.use((config: AxiosRequestConfig) => { this.axiosInstance.interceptors.request.use((config: InternalAxiosRequestConfig) => {
// If cancel repeat request is turned on, then cancel repeat request is prohibited // If cancel repeat request is turned on, then cancel repeat request is prohibited
// @ts-expect-error // @ts-expect-error
const { ignoreCancelToken } = config.requestOptions const { ignoreCancelToken } = config.requestOptions
...@@ -154,7 +156,7 @@ export class VAxios { ...@@ -154,7 +156,7 @@ export class VAxios {
/** /**
* @description: File Upload * @description: File Upload
*/ */
uploadFile<T = any>(config: AxiosRequestConfig, params: UploadFileParams) { uploadFile<T = any>(config: InternalAxiosRequestConfig, params: UploadFileParams) {
const formData = new window.FormData() const formData = new window.FormData()
const customFilename = params.name || 'file' const customFilename = params.name || 'file'
...@@ -219,7 +221,7 @@ export class VAxios { ...@@ -219,7 +221,7 @@ export class VAxios {
} }
// support form-data // support form-data
supportFormData(config: AxiosRequestConfig) { supportFormData(config: InternalAxiosRequestConfig) {
const headers = config.headers || this.options.headers const headers = config.headers || this.options.headers
const contentType = headers?.['Content-Type'] || headers?.['Content-Type'] const contentType = headers?.['Content-Type'] || headers?.['Content-Type']
...@@ -237,23 +239,23 @@ export class VAxios { ...@@ -237,23 +239,23 @@ export class VAxios {
} }
} }
get<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> { get<T = any>(config: InternalAxiosRequestConfig, options?: RequestOptions): Promise<T> {
return this.request({ ...config, method: 'GET' }, options) return this.request({ ...config, method: 'GET' }, options)
} }
post<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> { post<T = any>(config: InternalAxiosRequestConfig, options?: RequestOptions): Promise<T> {
return this.request({ ...config, method: 'POST' }, options) return this.request({ ...config, method: 'POST' }, options)
} }
put<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> { put<T = any>(config: InternalAxiosRequestConfig, options?: RequestOptions): Promise<T> {
return this.request({ ...config, method: 'PUT' }, options) return this.request({ ...config, method: 'PUT' }, options)
} }
delete<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> { delete<T = any>(config: InternalAxiosRequestConfig, options?: RequestOptions): Promise<T> {
return this.request({ ...config, method: 'DELETE' }, options) return this.request({ ...config, method: 'DELETE' }, options)
} }
request<T = any>(config: AxiosRequestConfig, options?: RequestOptions): Promise<T> { request<T = any>(config: InternalAxiosRequestConfig, options?: RequestOptions): Promise<T> {
let conf: CreateAxiosOptions = cloneDeep(config) let conf: CreateAxiosOptions = cloneDeep(config)
const transform = this.getTransform() const transform = this.getTransform()
......
import type { AxiosRequestConfig, Canceler } from 'axios' import type { Canceler, InternalAxiosRequestConfig } from 'axios'
import axios from 'axios' import axios from 'axios'
import { isFunction } from '/@/utils/is' import { isFunction } from '/@/utils/is'
// Used to store the identification and cancellation function of each request // Used to store the identification and cancellation function of each request
let pendingMap = new Map<string, Canceler>() let pendingMap = new Map<string, Canceler>()
export function getPendingUrl(config: AxiosRequestConfig) { export function getPendingUrl(config: InternalAxiosRequestConfig) {
return [config.method, config.url].join('&') return [config.method, config.url].join('&')
} }
...@@ -14,7 +14,7 @@ export class AxiosCanceler { ...@@ -14,7 +14,7 @@ export class AxiosCanceler {
* Add request * Add request
* @param {Object} config * @param {Object} config
*/ */
addPending(config: AxiosRequestConfig) { addPending(config: InternalAxiosRequestConfig) {
this.removePending(config) this.removePending(config)
const url = getPendingUrl(config) const url = getPendingUrl(config)
config.cancelToken = config.cancelToken =
...@@ -41,7 +41,7 @@ export class AxiosCanceler { ...@@ -41,7 +41,7 @@ export class AxiosCanceler {
* Removal request * Removal request
* @param {Object} config * @param {Object} config
*/ */
removePending(config: AxiosRequestConfig) { removePending(config: InternalAxiosRequestConfig) {
const url = getPendingUrl(config) const url = getPendingUrl(config)
if (pendingMap.has(url)) { if (pendingMap.has(url)) {
......
/** /**
* Data processing class, can be configured according to the project * Data processing class, can be configured according to the project
*/ */
import type { AxiosRequestConfig, AxiosResponse } from 'axios' import type { AxiosResponse, InternalAxiosRequestConfig } from 'axios'
import type { RequestOptions, Result } from '/#/axios' import type { RequestOptions, Result } from '/#/axios'
export interface CreateAxiosOptions extends AxiosRequestConfig { export interface CreateAxiosOptions extends InternalAxiosRequestConfig {
authenticationScheme?: string authenticationScheme?: string
transform?: AxiosTransform transform?: AxiosTransform
requestOptions?: RequestOptions requestOptions?: RequestOptions
...@@ -16,15 +16,15 @@ export abstract class AxiosTransform { ...@@ -16,15 +16,15 @@ export abstract class AxiosTransform {
* 允许动态修改本次请求的 config 和 options * 允许动态修改本次请求的 config 和 options
*/ */
inject?: ( inject?: (
config: AxiosRequestConfig, config: InternalAxiosRequestConfig,
options: RequestOptions, options: RequestOptions,
) => { config: AxiosRequestConfig; options: RequestOptions } ) => { config: InternalAxiosRequestConfig; options: RequestOptions }
/** /**
* @description: Process configuration before request * @description: Process configuration before request
* @description: Process configuration before request * @description: Process configuration before request
*/ */
beforeRequestHook?: (config: AxiosRequestConfig, options: RequestOptions) => AxiosRequestConfig beforeRequestHook?: (config: InternalAxiosRequestConfig, options: RequestOptions) => InternalAxiosRequestConfig
/** /**
* @description: Request successfully processed * @description: Request successfully processed
...@@ -39,7 +39,10 @@ export abstract class AxiosTransform { ...@@ -39,7 +39,10 @@ export abstract class AxiosTransform {
/** /**
* @description: 请求之前的拦截器 * @description: 请求之前的拦截器
*/ */
requestInterceptors?: (config: AxiosRequestConfig, options: CreateAxiosOptions) => AxiosRequestConfig requestInterceptors?: (
config: InternalAxiosRequestConfig,
options: CreateAxiosOptions,
) => InternalAxiosRequestConfig
/** /**
* @description: 请求之后的拦截器 * @description: 请求之后的拦截器
......
...@@ -268,7 +268,7 @@ export const defHttp = createAxios({ ...@@ -268,7 +268,7 @@ export const defHttp = createAxios({
// other api url // other api url
// export const otherHttp = createAxios({ // export const otherHttp = createAxios({
// transform: { // transform: {
// inject: (config: AxiosRequestConfig<any>, options: http.RequestOptions) => { // inject: (config: InternalAxiosRequestConfig<any>, options: http.RequestOptions) => {
// // TODO: 根据实际项目配置 // // TODO: 根据实际项目配置
// return { config, options } // return { config, options }
// }, // },
......
...@@ -68,11 +68,13 @@ declare module '@vue/runtime-core' { ...@@ -68,11 +68,13 @@ declare module '@vue/runtime-core' {
FuiLandscape: typeof import('./../src/components/firstui/fui-landscape/fui-landscape.vue')['default'] FuiLandscape: typeof import('./../src/components/firstui/fui-landscape/fui-landscape.vue')['default']
FuiLazyload: typeof import('./../src/components/firstui/fui-lazyload/fui-lazyload.vue')['default'] FuiLazyload: typeof import('./../src/components/firstui/fui-lazyload/fui-lazyload.vue')['default']
FuiLicensePlate: typeof import('./../src/components/firstui/fui-license-plate/fui-license-plate.vue')['default'] FuiLicensePlate: typeof import('./../src/components/firstui/fui-license-plate/fui-license-plate.vue')['default']
FuiLink: typeof import('./../src/components/firstui/fui-link/fui-link.vue')['default']
FuiList: typeof import('./../src/components/firstui/fui-list/fui-list.vue')['default'] FuiList: typeof import('./../src/components/firstui/fui-list/fui-list.vue')['default']
FuiListCell: typeof import('./../src/components/firstui/fui-list-cell/fui-list-cell.vue')['default'] FuiListCell: typeof import('./../src/components/firstui/fui-list-cell/fui-list-cell.vue')['default']
FuiLoadAni: typeof import('./../src/components/firstui/fui-load-ani/fui-load-ani.vue')['default'] FuiLoadAni: typeof import('./../src/components/firstui/fui-load-ani/fui-load-ani.vue')['default']
FuiLoading: typeof import('./../src/components/firstui/fui-loading/fui-loading.vue')['default'] FuiLoading: typeof import('./../src/components/firstui/fui-loading/fui-loading.vue')['default']
FuiLoadmore: typeof import('./../src/components/firstui/fui-loadmore/fui-loadmore.vue')['default'] FuiLoadmore: typeof import('./../src/components/firstui/fui-loadmore/fui-loadmore.vue')['default']
FuiLottie: typeof import('./../src/components/firstui/fui-lottie/fui-lottie.vue')['default']
FuiMessage: typeof import('./../src/components/firstui/fui-message/fui-message.vue')['default'] FuiMessage: typeof import('./../src/components/firstui/fui-message/fui-message.vue')['default']
FuiModal: typeof import('./../src/components/firstui/fui-modal/fui-modal.vue')['default'] FuiModal: typeof import('./../src/components/firstui/fui-modal/fui-modal.vue')['default']
FuiNavBar: typeof import('./../src/components/firstui/fui-nav-bar/fui-nav-bar.vue')['default'] FuiNavBar: typeof import('./../src/components/firstui/fui-nav-bar/fui-nav-bar.vue')['default']
......
import type { AxiosRequestConfig } from 'axios' import type { InternalAxiosRequestConfig } from 'axios'
declare global { declare global {
type Recordable<T = any> = Record<string, T> type Recordable<T = any> = Record<string, T>
...@@ -49,7 +49,7 @@ declare global { ...@@ -49,7 +49,7 @@ declare global {
retryRequest?: RetryRequest retryRequest?: RetryRequest
} }
type RequestConfig<T = any> = AxiosRequestConfig<T> type RequestConfig<T = any> = InternalAxiosRequestConfig<T>
} }
} }
......
...@@ -31,7 +31,7 @@ export default ({ mode }: ConfigEnv): UserConfig => { ...@@ -31,7 +31,7 @@ export default ({ mode }: ConfigEnv): UserConfig => {
include: ['lodash-es', '@vueuse/core'], include: ['lodash-es', '@vueuse/core'],
}, },
esbuild: { esbuild: {
drop: ['console', 'debugger'], drop: isDevFn(mode) ? [] : ['console', 'debugger'],
}, },
build: { build: {
target: 'es2015', target: 'es2015',
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论