swagger-client 3.29.0 → 3.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import qs from 'qs';
|
|
2
1
|
import formatKeyValue from './format.js';
|
|
3
2
|
import { isFile, isArrayOfFile, FileWithData } from './file.js';
|
|
4
3
|
function buildFormData(reqForm) {
|
|
@@ -37,6 +36,27 @@ function buildFormData(reqForm) {
|
|
|
37
36
|
return formData;
|
|
38
37
|
}, new FormData());
|
|
39
38
|
}
|
|
39
|
+
export const stringifyQuery = (queryObject, {
|
|
40
|
+
encode = true
|
|
41
|
+
} = {}) => {
|
|
42
|
+
const buildNestedParams = (params, key, value) => {
|
|
43
|
+
if (value == null) {
|
|
44
|
+
params.append(key, '');
|
|
45
|
+
} else if (Array.isArray(value)) {
|
|
46
|
+
value.reduce((acc, v) => buildNestedParams(params, key, v), params);
|
|
47
|
+
} else if (value instanceof Date) {
|
|
48
|
+
params.append(key, value.toISOString());
|
|
49
|
+
} else if (typeof value === 'object') {
|
|
50
|
+
Object.entries(value).reduce((acc, [k, v]) => buildNestedParams(params, `${key}[${k}]`, v), params);
|
|
51
|
+
} else {
|
|
52
|
+
params.append(key, value);
|
|
53
|
+
}
|
|
54
|
+
return params;
|
|
55
|
+
};
|
|
56
|
+
const params = Object.entries(queryObject).reduce((acc, [key, value]) => buildNestedParams(acc, key, value), new URLSearchParams());
|
|
57
|
+
const queryString = String(params);
|
|
58
|
+
return encode ? queryString : decodeURIComponent(queryString);
|
|
59
|
+
};
|
|
40
60
|
|
|
41
61
|
// Encodes an object using appropriate serializer.
|
|
42
62
|
export function encodeFormOrQuery(data) {
|
|
@@ -46,7 +66,7 @@ export function encodeFormOrQuery(data) {
|
|
|
46
66
|
* @param {string} parameterName - Parameter name
|
|
47
67
|
* @return {object} encoded parameter names and values
|
|
48
68
|
*/
|
|
49
|
-
const
|
|
69
|
+
const encodedQueryObj = Object.keys(data).reduce((result, parameterName) => {
|
|
50
70
|
// eslint-disable-next-line no-restricted-syntax
|
|
51
71
|
for (const [key, value] of formatKeyValue(parameterName, data[parameterName])) {
|
|
52
72
|
if (value instanceof FileWithData) {
|
|
@@ -57,10 +77,9 @@ export function encodeFormOrQuery(data) {
|
|
|
57
77
|
}
|
|
58
78
|
return result;
|
|
59
79
|
}, {});
|
|
60
|
-
return
|
|
61
|
-
encode: false
|
|
62
|
-
|
|
63
|
-
}) || '';
|
|
80
|
+
return stringifyQuery(encodedQueryObj, {
|
|
81
|
+
encode: false
|
|
82
|
+
});
|
|
64
83
|
}
|
|
65
84
|
|
|
66
85
|
// If the request has a `query` object, merge it into the request.url, and delete the object
|
|
@@ -96,12 +115,10 @@ export function serializeRequest(req = {}) {
|
|
|
96
115
|
const [baseUrl, oriSearch] = url.split('?');
|
|
97
116
|
let newStr = '';
|
|
98
117
|
if (oriSearch) {
|
|
99
|
-
const oriQuery =
|
|
118
|
+
const oriQuery = new URLSearchParams(oriSearch);
|
|
100
119
|
const keysToRemove = Object.keys(query);
|
|
101
|
-
keysToRemove.forEach(key => delete
|
|
102
|
-
newStr =
|
|
103
|
-
encode: true
|
|
104
|
-
});
|
|
120
|
+
keysToRemove.forEach(key => oriQuery.delete(key));
|
|
121
|
+
newStr = String(oriQuery);
|
|
105
122
|
}
|
|
106
123
|
const finalStr = joinSearch(newStr, encodeFormOrQuery(query));
|
|
107
124
|
req.url = baseUrl + finalStr;
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
4
4
|
exports.__esModule = true;
|
|
5
5
|
exports.encodeFormOrQuery = encodeFormOrQuery;
|
|
6
6
|
exports.serializeRequest = serializeRequest;
|
|
7
|
-
|
|
7
|
+
exports.stringifyQuery = void 0;
|
|
8
8
|
var _format = _interopRequireDefault(require("./format.js"));
|
|
9
9
|
var _file = require("./file.js");
|
|
10
10
|
function buildFormData(reqForm) {
|
|
@@ -43,8 +43,30 @@ function buildFormData(reqForm) {
|
|
|
43
43
|
return formData;
|
|
44
44
|
}, new FormData());
|
|
45
45
|
}
|
|
46
|
+
const stringifyQuery = (queryObject, {
|
|
47
|
+
encode = true
|
|
48
|
+
} = {}) => {
|
|
49
|
+
const buildNestedParams = (params, key, value) => {
|
|
50
|
+
if (value == null) {
|
|
51
|
+
params.append(key, '');
|
|
52
|
+
} else if (Array.isArray(value)) {
|
|
53
|
+
value.reduce((acc, v) => buildNestedParams(params, key, v), params);
|
|
54
|
+
} else if (value instanceof Date) {
|
|
55
|
+
params.append(key, value.toISOString());
|
|
56
|
+
} else if (typeof value === 'object') {
|
|
57
|
+
Object.entries(value).reduce((acc, [k, v]) => buildNestedParams(params, `${key}[${k}]`, v), params);
|
|
58
|
+
} else {
|
|
59
|
+
params.append(key, value);
|
|
60
|
+
}
|
|
61
|
+
return params;
|
|
62
|
+
};
|
|
63
|
+
const params = Object.entries(queryObject).reduce((acc, [key, value]) => buildNestedParams(acc, key, value), new URLSearchParams());
|
|
64
|
+
const queryString = String(params);
|
|
65
|
+
return encode ? queryString : decodeURIComponent(queryString);
|
|
66
|
+
};
|
|
46
67
|
|
|
47
68
|
// Encodes an object using appropriate serializer.
|
|
69
|
+
exports.stringifyQuery = stringifyQuery;
|
|
48
70
|
function encodeFormOrQuery(data) {
|
|
49
71
|
/**
|
|
50
72
|
* Encode parameter names and values
|
|
@@ -52,7 +74,7 @@ function encodeFormOrQuery(data) {
|
|
|
52
74
|
* @param {string} parameterName - Parameter name
|
|
53
75
|
* @return {object} encoded parameter names and values
|
|
54
76
|
*/
|
|
55
|
-
const
|
|
77
|
+
const encodedQueryObj = Object.keys(data).reduce((result, parameterName) => {
|
|
56
78
|
// eslint-disable-next-line no-restricted-syntax
|
|
57
79
|
for (const [key, value] of (0, _format.default)(parameterName, data[parameterName])) {
|
|
58
80
|
if (value instanceof _file.FileWithData) {
|
|
@@ -63,10 +85,9 @@ function encodeFormOrQuery(data) {
|
|
|
63
85
|
}
|
|
64
86
|
return result;
|
|
65
87
|
}, {});
|
|
66
|
-
return
|
|
67
|
-
encode: false
|
|
68
|
-
|
|
69
|
-
}) || '';
|
|
88
|
+
return stringifyQuery(encodedQueryObj, {
|
|
89
|
+
encode: false
|
|
90
|
+
});
|
|
70
91
|
}
|
|
71
92
|
|
|
72
93
|
// If the request has a `query` object, merge it into the request.url, and delete the object
|
|
@@ -102,12 +123,10 @@ function serializeRequest(req = {}) {
|
|
|
102
123
|
const [baseUrl, oriSearch] = url.split('?');
|
|
103
124
|
let newStr = '';
|
|
104
125
|
if (oriSearch) {
|
|
105
|
-
const oriQuery =
|
|
126
|
+
const oriQuery = new URLSearchParams(oriSearch);
|
|
106
127
|
const keysToRemove = Object.keys(query);
|
|
107
|
-
keysToRemove.forEach(key => delete
|
|
108
|
-
newStr =
|
|
109
|
-
encode: true
|
|
110
|
-
});
|
|
128
|
+
keysToRemove.forEach(key => oriQuery.delete(key));
|
|
129
|
+
newStr = String(oriQuery);
|
|
111
130
|
}
|
|
112
131
|
const finalStr = joinSearch(newStr, encodeFormOrQuery(query));
|
|
113
132
|
req.url = baseUrl + finalStr;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swagger-client",
|
|
3
|
-
"version": "3.29.
|
|
3
|
+
"version": "3.29.1",
|
|
4
4
|
"description": "SwaggerJS - a collection of interfaces for OAI specs",
|
|
5
5
|
"browser": {
|
|
6
6
|
"./src/helpers/btoa.node.js": "./src/helpers/btoa.browser.js",
|
|
@@ -86,9 +86,8 @@
|
|
|
86
86
|
"node-fetch-commonjs": "^3.3.2",
|
|
87
87
|
"openapi-path-templating": "^1.5.1",
|
|
88
88
|
"openapi-server-url-templating": "^1.0.0",
|
|
89
|
-
"qs": "^6.10.2",
|
|
90
89
|
"ramda-adjunct": "^5.0.0",
|
|
91
|
-
"neotraverse": "=0.6.
|
|
90
|
+
"neotraverse": "=0.6.18"
|
|
92
91
|
},
|
|
93
92
|
"devDependencies": {
|
|
94
93
|
"@babel/cli": "^7.21.0",
|