@modern-js/create-request 2.6.0 → 2.7.0
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.
- package/dist/cjs/browser.js +45 -32
- package/dist/cjs/node.js +49 -36
- package/dist/esm/browser.js +43 -33
- package/dist/esm/node.js +61 -48
- package/dist/esm-node/browser.js +45 -32
- package/dist/esm-node/node.js +49 -36
- package/dist/types/types.d.ts +2 -1
- package/package.json +6 -4
package/dist/cjs/browser.js
CHANGED
|
@@ -47,46 +47,59 @@ const configure = (options) => {
|
|
|
47
47
|
realAllowedHeaders = allowedHeaders;
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
const createRequest = (path, method, port, fetch2 = originFetch) => {
|
|
50
|
+
const createRequest = (path, method, port, httpMethodDecider = "functionName", fetch2 = originFetch) => {
|
|
51
51
|
const getFinalPath = (0, import_path_to_regexp.compile)(path, { encode: encodeURIComponent });
|
|
52
52
|
const keys = [];
|
|
53
53
|
(0, import_path_to_regexp.pathToRegexp)(path, keys);
|
|
54
54
|
const sender = async (...args) => {
|
|
55
55
|
const fetcher = realRequest || originFetch;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
let body;
|
|
57
|
+
let finalURL;
|
|
58
|
+
let headers;
|
|
59
|
+
if (httpMethodDecider === "inputParams") {
|
|
60
|
+
finalURL = path;
|
|
61
|
+
body = JSON.stringify({
|
|
62
|
+
args
|
|
63
63
|
});
|
|
64
|
+
headers = {
|
|
65
|
+
"Content-Type": "application/json"
|
|
66
|
+
};
|
|
64
67
|
} else {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if (payload.data) {
|
|
74
|
-
headers["Content-Type"] = "application/json";
|
|
75
|
-
body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
76
|
-
} else if (payload.body) {
|
|
77
|
-
headers["Content-Type"] = "text/plain";
|
|
78
|
-
body = payload.body;
|
|
79
|
-
} else if (payload.formData) {
|
|
80
|
-
body = payload.formData;
|
|
81
|
-
} else if (payload.formUrlencoded) {
|
|
82
|
-
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
83
|
-
if (typeof payload.formUrlencoded === "object" && // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
84
|
-
// @ts-expect-error
|
|
85
|
-
// eslint-disable-next-line node/prefer-global/url-search-params,node/no-unsupported-features/node-builtins
|
|
86
|
-
!(payload.formUrlencoded instanceof URLSearchParams)) {
|
|
87
|
-
body = import_query_string.default.stringify(payload.formUrlencoded);
|
|
68
|
+
const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
|
|
69
|
+
payload.params = payload.params || {};
|
|
70
|
+
const requestParams = args[0];
|
|
71
|
+
if (typeof requestParams === "object" && requestParams.params) {
|
|
72
|
+
const { params } = requestParams;
|
|
73
|
+
keys.forEach((key) => {
|
|
74
|
+
payload.params[key.name] = params[key.name];
|
|
75
|
+
});
|
|
88
76
|
} else {
|
|
89
|
-
|
|
77
|
+
keys.forEach((key, index) => {
|
|
78
|
+
payload.params[key.name] = args[index];
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
const finalPath = getFinalPath(payload.params);
|
|
82
|
+
finalURL = payload.query ? `${finalPath}?${import_query_string.default.stringify(payload.query)}` : finalPath;
|
|
83
|
+
headers = payload.headers || {};
|
|
84
|
+
body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
85
|
+
if (payload.data) {
|
|
86
|
+
headers["Content-Type"] = "application/json";
|
|
87
|
+
body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
88
|
+
} else if (payload.body) {
|
|
89
|
+
headers["Content-Type"] = "text/plain";
|
|
90
|
+
body = payload.body;
|
|
91
|
+
} else if (payload.formData) {
|
|
92
|
+
body = payload.formData;
|
|
93
|
+
} else if (payload.formUrlencoded) {
|
|
94
|
+
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
95
|
+
if (typeof payload.formUrlencoded === "object" && // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
96
|
+
// @ts-expect-error
|
|
97
|
+
// eslint-disable-next-line node/prefer-global/url-search-params,node/no-unsupported-features/node-builtins
|
|
98
|
+
!(payload.formUrlencoded instanceof URLSearchParams)) {
|
|
99
|
+
body = import_query_string.default.stringify(payload.formUrlencoded);
|
|
100
|
+
} else {
|
|
101
|
+
body = payload.formUrlencoded;
|
|
102
|
+
}
|
|
90
103
|
}
|
|
91
104
|
}
|
|
92
105
|
if (method.toLowerCase() === "get") {
|
package/dist/cjs/node.js
CHANGED
|
@@ -49,51 +49,64 @@ const configure = (options) => {
|
|
|
49
49
|
realAllowedHeaders = allowedHeaders;
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
|
-
const createRequest = (path, method, port, fetch = import_node_fetch.default) => {
|
|
52
|
+
const createRequest = (path, method, port, httpMethodDecider = "functionName", fetch = import_node_fetch.default) => {
|
|
53
53
|
const getFinalPath = (0, import_path_to_regexp.compile)(path, { encode: encodeURIComponent });
|
|
54
54
|
const keys = [];
|
|
55
55
|
(0, import_path_to_regexp.pathToRegexp)(path, keys);
|
|
56
56
|
const sender = (...args) => {
|
|
57
57
|
const webRequestHeaders = (0, import_ssr.useHeaders)();
|
|
58
|
-
const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
|
|
59
|
-
payload.params = payload.params || {};
|
|
60
|
-
const requestParams = args[0];
|
|
61
|
-
if (typeof requestParams === "object" && requestParams.params) {
|
|
62
|
-
const { params } = requestParams;
|
|
63
|
-
keys.forEach((key) => {
|
|
64
|
-
payload.params[key.name] = params[key.name];
|
|
65
|
-
});
|
|
66
|
-
} else {
|
|
67
|
-
keys.forEach((key, index) => {
|
|
68
|
-
payload.params[key.name] = args[index];
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
const plainPath = getFinalPath(payload.params);
|
|
72
|
-
const finalPath = payload.query ? `${plainPath}?${import_query_string.default.stringify(payload.query)}` : plainPath;
|
|
73
|
-
const headers = payload.headers || {};
|
|
74
58
|
let body;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
} else
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
59
|
+
let headers;
|
|
60
|
+
let url;
|
|
61
|
+
if (httpMethodDecider === "inputParams") {
|
|
62
|
+
url = path;
|
|
63
|
+
body = args;
|
|
64
|
+
headers = {
|
|
65
|
+
"Content-Type": "application/json"
|
|
66
|
+
};
|
|
67
|
+
} else {
|
|
68
|
+
const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
|
|
69
|
+
payload.params = payload.params || {};
|
|
70
|
+
const requestParams = args[0];
|
|
71
|
+
if (typeof requestParams === "object" && requestParams.params) {
|
|
72
|
+
const { params } = requestParams;
|
|
73
|
+
keys.forEach((key) => {
|
|
74
|
+
payload.params[key.name] = params[key.name];
|
|
75
|
+
});
|
|
92
76
|
} else {
|
|
93
|
-
|
|
77
|
+
keys.forEach((key, index) => {
|
|
78
|
+
payload.params[key.name] = args[index];
|
|
79
|
+
});
|
|
94
80
|
}
|
|
81
|
+
const plainPath = getFinalPath(payload.params);
|
|
82
|
+
const finalPath = payload.query ? `${plainPath}?${import_query_string.default.stringify(payload.query)}` : plainPath;
|
|
83
|
+
headers = payload.headers || {};
|
|
84
|
+
for (const key of realAllowedHeaders) {
|
|
85
|
+
if (typeof webRequestHeaders[key] !== "undefined") {
|
|
86
|
+
headers[key] = webRequestHeaders[key];
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (payload.data) {
|
|
90
|
+
headers["Content-Type"] = "application/json";
|
|
91
|
+
body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
92
|
+
} else if (payload.body) {
|
|
93
|
+
headers["Content-Type"] = "text/plain";
|
|
94
|
+
body = payload.body;
|
|
95
|
+
} else if (payload.formData) {
|
|
96
|
+
body = payload.formData;
|
|
97
|
+
} else if (payload.formUrlencoded) {
|
|
98
|
+
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
99
|
+
if (typeof payload.formUrlencoded === "object") {
|
|
100
|
+
body = import_query_string.default.stringify(payload.formUrlencoded);
|
|
101
|
+
} else {
|
|
102
|
+
body = payload.formUrlencoded;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
url = `http://localhost:${port}${finalPath}`;
|
|
106
|
+
}
|
|
107
|
+
if (method.toLowerCase() === "get") {
|
|
108
|
+
body = void 0;
|
|
95
109
|
}
|
|
96
|
-
const url = `http://localhost:${port}${finalPath}`;
|
|
97
110
|
const fetcher = realRequest || originFetch;
|
|
98
111
|
if (method.toLowerCase() === "get") {
|
|
99
112
|
body = void 0;
|
package/dist/esm/browser.js
CHANGED
|
@@ -176,7 +176,7 @@ var configure = function(options) {
|
|
|
176
176
|
}
|
|
177
177
|
};
|
|
178
178
|
var createRequest = function(path, method, port) {
|
|
179
|
-
var
|
|
179
|
+
var httpMethodDecider = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "functionName", fetch2 = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : originFetch;
|
|
180
180
|
var getFinalPath = compile(path, {
|
|
181
181
|
encode: encodeURIComponent
|
|
182
182
|
});
|
|
@@ -184,47 +184,57 @@ var createRequest = function(path, method, port) {
|
|
|
184
184
|
pathToRegexp(path, keys);
|
|
185
185
|
var sender = function() {
|
|
186
186
|
var _ref = _asyncToGenerator(function() {
|
|
187
|
-
var _len, args, _key, fetcher,
|
|
187
|
+
var _len, args, _key, fetcher, body, finalURL, headers, payload, requestParams, params, finalPath;
|
|
188
188
|
var _arguments = arguments;
|
|
189
189
|
return __generator(this, function(_state) {
|
|
190
190
|
for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
191
191
|
args[_key] = _arguments[_key];
|
|
192
192
|
}
|
|
193
193
|
fetcher = realRequest || originFetch;
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
params = requestParams.params;
|
|
199
|
-
keys.forEach(function(key) {
|
|
200
|
-
payload.params[key.name] = params[key.name];
|
|
194
|
+
if (httpMethodDecider === "inputParams") {
|
|
195
|
+
finalURL = path;
|
|
196
|
+
body = JSON.stringify({
|
|
197
|
+
args: args
|
|
201
198
|
});
|
|
199
|
+
headers = {
|
|
200
|
+
"Content-Type": "application/json"
|
|
201
|
+
};
|
|
202
202
|
} else {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
if (payload.data) {
|
|
212
|
-
headers["Content-Type"] = "application/json";
|
|
213
|
-
body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
214
|
-
} else if (payload.body) {
|
|
215
|
-
headers["Content-Type"] = "text/plain";
|
|
216
|
-
body = payload.body;
|
|
217
|
-
} else if (payload.formData) {
|
|
218
|
-
body = payload.formData;
|
|
219
|
-
} else if (payload.formUrlencoded) {
|
|
220
|
-
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
221
|
-
if (typeof payload.formUrlencoded === "object" && // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
222
|
-
// @ts-expect-error
|
|
223
|
-
// eslint-disable-next-line node/prefer-global/url-search-params,node/no-unsupported-features/node-builtins
|
|
224
|
-
!_instanceof(payload.formUrlencoded, URLSearchParams)) {
|
|
225
|
-
body = qs.stringify(payload.formUrlencoded);
|
|
203
|
+
payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
|
|
204
|
+
payload.params = payload.params || {};
|
|
205
|
+
requestParams = args[0];
|
|
206
|
+
if (typeof requestParams === "object" && requestParams.params) {
|
|
207
|
+
params = requestParams.params;
|
|
208
|
+
keys.forEach(function(key) {
|
|
209
|
+
payload.params[key.name] = params[key.name];
|
|
210
|
+
});
|
|
226
211
|
} else {
|
|
227
|
-
|
|
212
|
+
keys.forEach(function(key, index) {
|
|
213
|
+
payload.params[key.name] = args[index];
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
finalPath = getFinalPath(payload.params);
|
|
217
|
+
finalURL = payload.query ? "".concat(finalPath, "?").concat(qs.stringify(payload.query)) : finalPath;
|
|
218
|
+
headers = payload.headers || {};
|
|
219
|
+
body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
220
|
+
if (payload.data) {
|
|
221
|
+
headers["Content-Type"] = "application/json";
|
|
222
|
+
body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
223
|
+
} else if (payload.body) {
|
|
224
|
+
headers["Content-Type"] = "text/plain";
|
|
225
|
+
body = payload.body;
|
|
226
|
+
} else if (payload.formData) {
|
|
227
|
+
body = payload.formData;
|
|
228
|
+
} else if (payload.formUrlencoded) {
|
|
229
|
+
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
230
|
+
if (typeof payload.formUrlencoded === "object" && // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
231
|
+
// @ts-expect-error
|
|
232
|
+
// eslint-disable-next-line node/prefer-global/url-search-params,node/no-unsupported-features/node-builtins
|
|
233
|
+
!_instanceof(payload.formUrlencoded, URLSearchParams)) {
|
|
234
|
+
body = qs.stringify(payload.formUrlencoded);
|
|
235
|
+
} else {
|
|
236
|
+
body = payload.formUrlencoded;
|
|
237
|
+
}
|
|
228
238
|
}
|
|
229
239
|
}
|
|
230
240
|
if (method.toLowerCase() === "get") {
|
package/dist/esm/node.js
CHANGED
|
@@ -47,7 +47,7 @@ var configure = function(options) {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
var createRequest = function(path, method, port) {
|
|
50
|
-
var
|
|
50
|
+
var httpMethodDecider = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "functionName", fetch = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : nodeFetch;
|
|
51
51
|
var getFinalPath = compile(path, {
|
|
52
52
|
encode: encodeURIComponent
|
|
53
53
|
});
|
|
@@ -58,62 +58,75 @@ var createRequest = function(path, method, port) {
|
|
|
58
58
|
args[_key] = arguments[_key];
|
|
59
59
|
}
|
|
60
60
|
var webRequestHeaders = useHeaders();
|
|
61
|
-
var payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
|
|
62
|
-
payload.params = payload.params || {};
|
|
63
|
-
var requestParams = args[0];
|
|
64
|
-
if (typeof requestParams === "object" && requestParams.params) {
|
|
65
|
-
var params = requestParams.params;
|
|
66
|
-
keys.forEach(function(key) {
|
|
67
|
-
payload.params[key.name] = params[key.name];
|
|
68
|
-
});
|
|
69
|
-
} else {
|
|
70
|
-
keys.forEach(function(key, index) {
|
|
71
|
-
payload.params[key.name] = args[index];
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
var plainPath = getFinalPath(payload.params);
|
|
75
|
-
var finalPath = payload.query ? "".concat(plainPath, "?").concat(qs.stringify(payload.query)) : plainPath;
|
|
76
|
-
var headers = payload.headers || {};
|
|
77
61
|
var body;
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
62
|
+
var headers;
|
|
63
|
+
var url;
|
|
64
|
+
if (httpMethodDecider === "inputParams") {
|
|
65
|
+
url = path;
|
|
66
|
+
body = args;
|
|
67
|
+
headers = {
|
|
68
|
+
"Content-Type": "application/json"
|
|
69
|
+
};
|
|
70
|
+
} else {
|
|
71
|
+
var payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
|
|
72
|
+
payload.params = payload.params || {};
|
|
73
|
+
var requestParams = args[0];
|
|
74
|
+
if (typeof requestParams === "object" && requestParams.params) {
|
|
75
|
+
var params = requestParams.params;
|
|
76
|
+
keys.forEach(function(key) {
|
|
77
|
+
payload.params[key.name] = params[key.name];
|
|
78
|
+
});
|
|
79
|
+
} else {
|
|
80
|
+
keys.forEach(function(key, index) {
|
|
81
|
+
payload.params[key.name] = args[index];
|
|
82
|
+
});
|
|
85
83
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
var plainPath = getFinalPath(payload.params);
|
|
85
|
+
var finalPath = payload.query ? "".concat(plainPath, "?").concat(qs.stringify(payload.query)) : plainPath;
|
|
86
|
+
headers = payload.headers || {};
|
|
87
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
90
88
|
try {
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
for(var _iterator = realAllowedHeaders[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
90
|
+
var key = _step.value;
|
|
91
|
+
if (typeof webRequestHeaders[key] !== "undefined") {
|
|
92
|
+
headers[key] = webRequestHeaders[key];
|
|
93
|
+
}
|
|
93
94
|
}
|
|
95
|
+
} catch (err) {
|
|
96
|
+
_didIteratorError = true;
|
|
97
|
+
_iteratorError = err;
|
|
94
98
|
} finally{
|
|
95
|
-
|
|
96
|
-
|
|
99
|
+
try {
|
|
100
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
101
|
+
_iterator.return();
|
|
102
|
+
}
|
|
103
|
+
} finally{
|
|
104
|
+
if (_didIteratorError) {
|
|
105
|
+
throw _iteratorError;
|
|
106
|
+
}
|
|
97
107
|
}
|
|
98
108
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
109
|
+
if (payload.data) {
|
|
110
|
+
headers["Content-Type"] = "application/json";
|
|
111
|
+
body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
112
|
+
} else if (payload.body) {
|
|
113
|
+
headers["Content-Type"] = "text/plain";
|
|
114
|
+
body = payload.body;
|
|
115
|
+
} else if (payload.formData) {
|
|
116
|
+
body = payload.formData;
|
|
117
|
+
} else if (payload.formUrlencoded) {
|
|
118
|
+
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
119
|
+
if (typeof payload.formUrlencoded === "object") {
|
|
120
|
+
body = qs.stringify(payload.formUrlencoded);
|
|
121
|
+
} else {
|
|
122
|
+
body = payload.formUrlencoded;
|
|
123
|
+
}
|
|
114
124
|
}
|
|
125
|
+
url = "http://localhost:".concat(port).concat(finalPath);
|
|
126
|
+
}
|
|
127
|
+
if (method.toLowerCase() === "get") {
|
|
128
|
+
body = void 0;
|
|
115
129
|
}
|
|
116
|
-
var url = "http://localhost:".concat(port).concat(finalPath);
|
|
117
130
|
var fetcher = realRequest || originFetch;
|
|
118
131
|
if (method.toLowerCase() === "get") {
|
|
119
132
|
body = void 0;
|
package/dist/esm-node/browser.js
CHANGED
|
@@ -14,46 +14,59 @@ const configure = (options) => {
|
|
|
14
14
|
realAllowedHeaders = allowedHeaders;
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
|
-
const createRequest = (path, method, port, fetch2 = originFetch) => {
|
|
17
|
+
const createRequest = (path, method, port, httpMethodDecider = "functionName", fetch2 = originFetch) => {
|
|
18
18
|
const getFinalPath = compile(path, { encode: encodeURIComponent });
|
|
19
19
|
const keys = [];
|
|
20
20
|
pathToRegexp(path, keys);
|
|
21
21
|
const sender = async (...args) => {
|
|
22
22
|
const fetcher = realRequest || originFetch;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
let body;
|
|
24
|
+
let finalURL;
|
|
25
|
+
let headers;
|
|
26
|
+
if (httpMethodDecider === "inputParams") {
|
|
27
|
+
finalURL = path;
|
|
28
|
+
body = JSON.stringify({
|
|
29
|
+
args
|
|
30
30
|
});
|
|
31
|
+
headers = {
|
|
32
|
+
"Content-Type": "application/json"
|
|
33
|
+
};
|
|
31
34
|
} else {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (payload.data) {
|
|
41
|
-
headers["Content-Type"] = "application/json";
|
|
42
|
-
body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
43
|
-
} else if (payload.body) {
|
|
44
|
-
headers["Content-Type"] = "text/plain";
|
|
45
|
-
body = payload.body;
|
|
46
|
-
} else if (payload.formData) {
|
|
47
|
-
body = payload.formData;
|
|
48
|
-
} else if (payload.formUrlencoded) {
|
|
49
|
-
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
50
|
-
if (typeof payload.formUrlencoded === "object" && // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
51
|
-
// @ts-expect-error
|
|
52
|
-
// eslint-disable-next-line node/prefer-global/url-search-params,node/no-unsupported-features/node-builtins
|
|
53
|
-
!(payload.formUrlencoded instanceof URLSearchParams)) {
|
|
54
|
-
body = qs.stringify(payload.formUrlencoded);
|
|
35
|
+
const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
|
|
36
|
+
payload.params = payload.params || {};
|
|
37
|
+
const requestParams = args[0];
|
|
38
|
+
if (typeof requestParams === "object" && requestParams.params) {
|
|
39
|
+
const { params } = requestParams;
|
|
40
|
+
keys.forEach((key) => {
|
|
41
|
+
payload.params[key.name] = params[key.name];
|
|
42
|
+
});
|
|
55
43
|
} else {
|
|
56
|
-
|
|
44
|
+
keys.forEach((key, index) => {
|
|
45
|
+
payload.params[key.name] = args[index];
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const finalPath = getFinalPath(payload.params);
|
|
49
|
+
finalURL = payload.query ? `${finalPath}?${qs.stringify(payload.query)}` : finalPath;
|
|
50
|
+
headers = payload.headers || {};
|
|
51
|
+
body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
52
|
+
if (payload.data) {
|
|
53
|
+
headers["Content-Type"] = "application/json";
|
|
54
|
+
body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
55
|
+
} else if (payload.body) {
|
|
56
|
+
headers["Content-Type"] = "text/plain";
|
|
57
|
+
body = payload.body;
|
|
58
|
+
} else if (payload.formData) {
|
|
59
|
+
body = payload.formData;
|
|
60
|
+
} else if (payload.formUrlencoded) {
|
|
61
|
+
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
62
|
+
if (typeof payload.formUrlencoded === "object" && // eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
63
|
+
// @ts-expect-error
|
|
64
|
+
// eslint-disable-next-line node/prefer-global/url-search-params,node/no-unsupported-features/node-builtins
|
|
65
|
+
!(payload.formUrlencoded instanceof URLSearchParams)) {
|
|
66
|
+
body = qs.stringify(payload.formUrlencoded);
|
|
67
|
+
} else {
|
|
68
|
+
body = payload.formUrlencoded;
|
|
69
|
+
}
|
|
57
70
|
}
|
|
58
71
|
}
|
|
59
72
|
if (method.toLowerCase() === "get") {
|
package/dist/esm-node/node.js
CHANGED
|
@@ -16,51 +16,64 @@ const configure = (options) => {
|
|
|
16
16
|
realAllowedHeaders = allowedHeaders;
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
|
-
const createRequest = (path, method, port, fetch = nodeFetch) => {
|
|
19
|
+
const createRequest = (path, method, port, httpMethodDecider = "functionName", fetch = nodeFetch) => {
|
|
20
20
|
const getFinalPath = compile(path, { encode: encodeURIComponent });
|
|
21
21
|
const keys = [];
|
|
22
22
|
pathToRegexp(path, keys);
|
|
23
23
|
const sender = (...args) => {
|
|
24
24
|
const webRequestHeaders = useHeaders();
|
|
25
|
-
const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
|
|
26
|
-
payload.params = payload.params || {};
|
|
27
|
-
const requestParams = args[0];
|
|
28
|
-
if (typeof requestParams === "object" && requestParams.params) {
|
|
29
|
-
const { params } = requestParams;
|
|
30
|
-
keys.forEach((key) => {
|
|
31
|
-
payload.params[key.name] = params[key.name];
|
|
32
|
-
});
|
|
33
|
-
} else {
|
|
34
|
-
keys.forEach((key, index) => {
|
|
35
|
-
payload.params[key.name] = args[index];
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
const plainPath = getFinalPath(payload.params);
|
|
39
|
-
const finalPath = payload.query ? `${plainPath}?${qs.stringify(payload.query)}` : plainPath;
|
|
40
|
-
const headers = payload.headers || {};
|
|
41
25
|
let body;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
} else
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
26
|
+
let headers;
|
|
27
|
+
let url;
|
|
28
|
+
if (httpMethodDecider === "inputParams") {
|
|
29
|
+
url = path;
|
|
30
|
+
body = args;
|
|
31
|
+
headers = {
|
|
32
|
+
"Content-Type": "application/json"
|
|
33
|
+
};
|
|
34
|
+
} else {
|
|
35
|
+
const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
|
|
36
|
+
payload.params = payload.params || {};
|
|
37
|
+
const requestParams = args[0];
|
|
38
|
+
if (typeof requestParams === "object" && requestParams.params) {
|
|
39
|
+
const { params } = requestParams;
|
|
40
|
+
keys.forEach((key) => {
|
|
41
|
+
payload.params[key.name] = params[key.name];
|
|
42
|
+
});
|
|
59
43
|
} else {
|
|
60
|
-
|
|
44
|
+
keys.forEach((key, index) => {
|
|
45
|
+
payload.params[key.name] = args[index];
|
|
46
|
+
});
|
|
61
47
|
}
|
|
48
|
+
const plainPath = getFinalPath(payload.params);
|
|
49
|
+
const finalPath = payload.query ? `${plainPath}?${qs.stringify(payload.query)}` : plainPath;
|
|
50
|
+
headers = payload.headers || {};
|
|
51
|
+
for (const key of realAllowedHeaders) {
|
|
52
|
+
if (typeof webRequestHeaders[key] !== "undefined") {
|
|
53
|
+
headers[key] = webRequestHeaders[key];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (payload.data) {
|
|
57
|
+
headers["Content-Type"] = "application/json";
|
|
58
|
+
body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
|
|
59
|
+
} else if (payload.body) {
|
|
60
|
+
headers["Content-Type"] = "text/plain";
|
|
61
|
+
body = payload.body;
|
|
62
|
+
} else if (payload.formData) {
|
|
63
|
+
body = payload.formData;
|
|
64
|
+
} else if (payload.formUrlencoded) {
|
|
65
|
+
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
66
|
+
if (typeof payload.formUrlencoded === "object") {
|
|
67
|
+
body = qs.stringify(payload.formUrlencoded);
|
|
68
|
+
} else {
|
|
69
|
+
body = payload.formUrlencoded;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
url = `http://localhost:${port}${finalPath}`;
|
|
73
|
+
}
|
|
74
|
+
if (method.toLowerCase() === "get") {
|
|
75
|
+
body = void 0;
|
|
62
76
|
}
|
|
63
|
-
const url = `http://localhost:${port}${finalPath}`;
|
|
64
77
|
const fetcher = realRequest || originFetch;
|
|
65
78
|
if (method.toLowerCase() === "get") {
|
|
66
79
|
body = void 0;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type nodeFetch from 'node-fetch';
|
|
2
|
+
import type { HttpMethodDecider } from '@modern-js/types';
|
|
2
3
|
export type BFFRequestPayload = {
|
|
3
4
|
params?: Record<string, any>;
|
|
4
5
|
query?: Record<string, any>;
|
|
@@ -13,7 +14,7 @@ export type Fetch = typeof fetch | typeof nodeFetch;
|
|
|
13
14
|
export type Sender = ((...args: any[]) => Promise<any>) & {
|
|
14
15
|
fetch?: Fetch;
|
|
15
16
|
};
|
|
16
|
-
export type RequestCreator = (path: string, method: string, port: number,
|
|
17
|
+
export type RequestCreator = (path: string, method: string, port: number, httpMethodDecider: HttpMethodDecider, fetch?: Fetch) => Sender;
|
|
17
18
|
export type IOptions<F = Fetch> = {
|
|
18
19
|
request?: F;
|
|
19
20
|
interceptor?: (request: F) => F;
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.7.0",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"main": "./dist/cjs/index.js",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"node-fetch": "^2.6.1",
|
|
62
62
|
"path-to-regexp": "^6.2.0",
|
|
63
63
|
"query-string": "^7.1.1",
|
|
64
|
-
"@modern-js/utils": "2.
|
|
64
|
+
"@modern-js/utils": "2.7.0"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@types/jest": "^27",
|
|
@@ -71,8 +71,9 @@
|
|
|
71
71
|
"jest": "^27",
|
|
72
72
|
"nock": "^13.2.1",
|
|
73
73
|
"typescript": "^4",
|
|
74
|
-
"@
|
|
75
|
-
"@scripts/jest-config": "2.
|
|
74
|
+
"@modern-js/types": "2.7.0",
|
|
75
|
+
"@scripts/jest-config": "2.7.0",
|
|
76
|
+
"@scripts/build": "2.7.0"
|
|
76
77
|
},
|
|
77
78
|
"sideEffects": false,
|
|
78
79
|
"publishConfig": {
|
|
@@ -81,6 +82,7 @@
|
|
|
81
82
|
},
|
|
82
83
|
"scripts": {
|
|
83
84
|
"new": "modern-lib new",
|
|
85
|
+
"dev": "modern-lib build --watch",
|
|
84
86
|
"build": "modern-lib build",
|
|
85
87
|
"test": "jest --passWithNoTests"
|
|
86
88
|
}
|