Skip to content

Commit f120618

Browse files
committed
fix: 🐛 encode url param
1 parent f3ac9fb commit f120618

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/__tests__/base-service.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { ValidatorType } from '../core/Validator'
22
import Axios from 'axios'
33
import MockAdapter from 'axios-mock-adapter'
44
import { merge } from 'lodash'
5+
import { beforeEach, describe, expect, it } from 'vitest'
56
import BaseService from '../core/BaseService'
67
import Validator from '../core/Validator'
78
import PostService from '../util/PostService'

src/core/BaseService.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { AxiosError, AxiosInstance, Method, AxiosRequestConfig, AxiosResponse } from 'axios'
22
import type { IParseOptions } from 'qs'
33
import { isObject } from 'lodash'
4-
import qs from 'qs'
4+
import { parse, stringify } from 'qs'
55
import Validator from './Validator'
66
import { hasFiles, objectToFormData } from '../util'
77

@@ -121,7 +121,13 @@ export default class BaseService {
121121
}
122122

123123
private __getParameterString(url: string) {
124-
const query = qs.stringify(this.parameters, { encode: false, skipNulls: true, addQueryPrefix: true })
124+
const query = stringify(this.parameters, {
125+
encode: true,
126+
skipNulls: true,
127+
addQueryPrefix: true,
128+
encodeValuesOnly: true,
129+
strictNullHandling: true,
130+
})
125131
return `${url}${query}`
126132
}
127133

@@ -139,7 +145,7 @@ export default class BaseService {
139145
allowDots: true,
140146
ignoreQueryPrefix: true,
141147
})
142-
const params = qs.parse(parameter, options)
148+
const params = parse(parameter, options)
143149
return this.setParameters(params)
144150
}
145151
this.parameters[parameter] = value

0 commit comments

Comments
 (0)