@modern-js/create-request 2.5.1-alpha.3 → 2.5.1-alpha.5

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.
@@ -43,47 +43,57 @@ const configure = (options) => {
43
43
  realAllowedHeaders = allowedHeaders;
44
44
  }
45
45
  };
46
- const createRequest = (path, method, port, fetch2 = originFetch) => {
46
+ const createRequest = (path, method, port, httpMethodDecider = "functionName", fetch2 = originFetch) => {
47
47
  const getFinalPath = (0, import_path_to_regexp.compile)(path, { encode: encodeURIComponent });
48
48
  const keys = [];
49
49
  (0, import_path_to_regexp.pathToRegexp)(path, keys);
50
50
  const sender = async (...args) => {
51
51
  const fetcher = realRequest || originFetch;
52
- const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
53
- payload.params = payload.params || {};
54
- const requestParams = args[0];
55
- if (typeof requestParams === "object" && requestParams.params) {
56
- const { params } = requestParams;
57
- keys.forEach((key) => {
58
- payload.params[key.name] = params[key.name];
59
- });
60
- } else {
61
- keys.forEach((key, index) => {
62
- payload.params[key.name] = args[index];
63
- });
64
- }
65
- const finalPath = getFinalPath(payload.params);
66
- const finalURL = payload.query ? `${finalPath}?${import_query_string.default.stringify(payload.query)}` : finalPath;
67
- const headers = payload.headers || {};
68
- let body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
69
- if (payload.data) {
70
- headers["Content-Type"] = "application/json";
71
- body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
72
- } else if (payload.body) {
73
- headers["Content-Type"] = "text/plain";
74
- body = payload.body;
75
- } else if (payload.formData) {
76
- body = payload.formData;
77
- } else if (payload.formUrlencoded) {
78
- headers["Content-Type"] = "application/x-www-form-urlencoded";
79
- if (typeof payload.formUrlencoded === "object" && !(payload.formUrlencoded instanceof URLSearchParams)) {
80
- body = import_query_string.default.stringify(payload.formUrlencoded);
52
+ let body;
53
+ let finalURL;
54
+ let headers;
55
+ if (httpMethodDecider === "functionName") {
56
+ const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
57
+ payload.params = payload.params || {};
58
+ const requestParams = args[0];
59
+ if (typeof requestParams === "object" && requestParams.params) {
60
+ const { params } = requestParams;
61
+ keys.forEach((key) => {
62
+ payload.params[key.name] = params[key.name];
63
+ });
81
64
  } else {
82
- body = payload.formUrlencoded;
65
+ keys.forEach((key, index) => {
66
+ payload.params[key.name] = args[index];
67
+ });
83
68
  }
84
- }
85
- if (method.toLowerCase() === "get") {
86
- body = void 0;
69
+ const finalPath = getFinalPath(payload.params);
70
+ finalURL = payload.query ? `${finalPath}?${import_query_string.default.stringify(payload.query)}` : finalPath;
71
+ headers = payload.headers || {};
72
+ body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
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" && !(payload.formUrlencoded instanceof URLSearchParams)) {
84
+ body = import_query_string.default.stringify(payload.formUrlencoded);
85
+ } else {
86
+ body = payload.formUrlencoded;
87
+ }
88
+ }
89
+ } else {
90
+ finalURL = path;
91
+ body = JSON.stringify({
92
+ args
93
+ });
94
+ headers = {
95
+ ["Content-Type"]: "application/json"
96
+ };
87
97
  }
88
98
  return fetcher(finalURL, {
89
99
  method,
package/dist/cjs/node.js CHANGED
@@ -45,55 +45,62 @@ const configure = (options) => {
45
45
  realAllowedHeaders = allowedHeaders;
46
46
  }
47
47
  };
48
- const createRequest = (path, method, port, fetch = import_node_fetch.default) => {
48
+ const createRequest = (path, method, port, httpMethodDecider = "functionName", fetch = import_node_fetch.default) => {
49
49
  const getFinalPath = (0, import_path_to_regexp.compile)(path, { encode: encodeURIComponent });
50
50
  const keys = [];
51
51
  (0, import_path_to_regexp.pathToRegexp)(path, keys);
52
52
  const sender = (...args) => {
53
53
  const webRequestHeaders = (0, import_ssr.useHeaders)();
54
- const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
55
- payload.params = payload.params || {};
56
- const requestParams = args[0];
57
- if (typeof requestParams === "object" && requestParams.params) {
58
- const { params } = requestParams;
59
- keys.forEach((key) => {
60
- payload.params[key.name] = params[key.name];
61
- });
62
- } else {
63
- keys.forEach((key, index) => {
64
- payload.params[key.name] = args[index];
65
- });
66
- }
67
- const plainPath = getFinalPath(payload.params);
68
- const finalPath = payload.query ? `${plainPath}?${import_query_string.default.stringify(payload.query)}` : plainPath;
69
- const headers = payload.headers || {};
70
54
  let body;
71
- for (const key of realAllowedHeaders) {
72
- if (typeof webRequestHeaders[key] !== "undefined") {
73
- headers[key] = webRequestHeaders[key];
74
- }
75
- }
76
- if (payload.data) {
77
- headers["Content-Type"] = "application/json";
78
- body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
79
- } else if (payload.body) {
80
- headers["Content-Type"] = "text/plain";
81
- body = payload.body;
82
- } else if (payload.formData) {
83
- body = payload.formData;
84
- } else if (payload.formUrlencoded) {
85
- headers["Content-Type"] = "application/x-www-form-urlencoded";
86
- if (typeof payload.formUrlencoded === "object") {
87
- body = import_query_string.default.stringify(payload.formUrlencoded);
55
+ let headers;
56
+ let url;
57
+ if (httpMethodDecider === "functionName") {
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
+ });
88
66
  } else {
89
- body = payload.formUrlencoded;
67
+ keys.forEach((key, index) => {
68
+ payload.params[key.name] = args[index];
69
+ });
90
70
  }
71
+ const plainPath = getFinalPath(payload.params);
72
+ const finalPath = payload.query ? `${plainPath}?${import_query_string.default.stringify(payload.query)}` : plainPath;
73
+ headers = payload.headers || {};
74
+ for (const key of realAllowedHeaders) {
75
+ if (typeof webRequestHeaders[key] !== "undefined") {
76
+ headers[key] = webRequestHeaders[key];
77
+ }
78
+ }
79
+ if (payload.data) {
80
+ headers["Content-Type"] = "application/json";
81
+ body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
82
+ } else if (payload.body) {
83
+ headers["Content-Type"] = "text/plain";
84
+ body = payload.body;
85
+ } else if (payload.formData) {
86
+ body = payload.formData;
87
+ } else if (payload.formUrlencoded) {
88
+ headers["Content-Type"] = "application/x-www-form-urlencoded";
89
+ if (typeof payload.formUrlencoded === "object") {
90
+ body = import_query_string.default.stringify(payload.formUrlencoded);
91
+ } else {
92
+ body = payload.formUrlencoded;
93
+ }
94
+ }
95
+ url = `http://localhost:${port}${finalPath}`;
96
+ } else {
97
+ url = path;
98
+ body = args;
99
+ headers = {
100
+ ["Content-Type"]: "application/json"
101
+ };
91
102
  }
92
- const url = `http://localhost:${port}${finalPath}`;
93
103
  const fetcher = realRequest || originFetch;
94
- if (method.toLowerCase() === "get") {
95
- body = void 0;
96
- }
97
104
  return fetcher(url, { method, body, headers });
98
105
  };
99
106
  return sender;
@@ -35,6 +35,19 @@ function _asyncToGenerator(fn) {
35
35
  });
36
36
  };
37
37
  }
38
+ function _defineProperty(obj, key, value) {
39
+ if (key in obj) {
40
+ Object.defineProperty(obj, key, {
41
+ value: value,
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true
45
+ });
46
+ } else {
47
+ obj[key] = value;
48
+ }
49
+ return obj;
50
+ }
38
51
  function _instanceof(left, right) {
39
52
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
40
53
  return !!right[Symbol.hasInstance](left);
@@ -176,7 +189,7 @@ var configure = function(options) {
176
189
  }
177
190
  };
178
191
  var createRequest = function(path, method, port) {
179
- var fetch2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : originFetch;
192
+ var httpMethodDecider = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "functionName", fetch2 = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : originFetch;
180
193
  var getFinalPath = compile(path, {
181
194
  encode: encodeURIComponent
182
195
  });
@@ -184,48 +197,53 @@ var createRequest = function(path, method, port) {
184
197
  pathToRegexp(path, keys);
185
198
  var sender = function() {
186
199
  var _ref = _asyncToGenerator(function() {
187
- var _len, args, _key, fetcher, payload, requestParams, params, finalPath, finalURL, headers, body;
200
+ var _len, args, _key, fetcher, body, finalURL, headers, payload, requestParams, params, finalPath;
188
201
  var _arguments = arguments;
189
202
  return __generator(this, function(_state) {
190
203
  for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
191
204
  args[_key] = _arguments[_key];
192
205
  }
193
206
  fetcher = realRequest || originFetch;
194
- payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
195
- payload.params = payload.params || {};
196
- requestParams = args[0];
197
- if (typeof requestParams === "object" && requestParams.params) {
198
- params = requestParams.params;
199
- keys.forEach(function(key) {
200
- payload.params[key.name] = params[key.name];
201
- });
202
- } else {
203
- keys.forEach(function(key, index) {
204
- payload.params[key.name] = args[index];
205
- });
206
- }
207
- finalPath = getFinalPath(payload.params);
208
- finalURL = payload.query ? "".concat(finalPath, "?").concat(qs.stringify(payload.query)) : finalPath;
209
- headers = payload.headers || {};
210
- body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
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" && !_instanceof(payload.formUrlencoded, URLSearchParams)) {
222
- body = qs.stringify(payload.formUrlencoded);
207
+ if (httpMethodDecider === "functionName") {
208
+ payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
209
+ payload.params = payload.params || {};
210
+ requestParams = args[0];
211
+ if (typeof requestParams === "object" && requestParams.params) {
212
+ params = requestParams.params;
213
+ keys.forEach(function(key) {
214
+ payload.params[key.name] = params[key.name];
215
+ });
223
216
  } else {
224
- body = payload.formUrlencoded;
217
+ keys.forEach(function(key, index) {
218
+ payload.params[key.name] = args[index];
219
+ });
225
220
  }
226
- }
227
- if (method.toLowerCase() === "get") {
228
- body = void 0;
221
+ finalPath = getFinalPath(payload.params);
222
+ finalURL = payload.query ? "".concat(finalPath, "?").concat(qs.stringify(payload.query)) : finalPath;
223
+ headers = payload.headers || {};
224
+ body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
225
+ if (payload.data) {
226
+ headers["Content-Type"] = "application/json";
227
+ body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
228
+ } else if (payload.body) {
229
+ headers["Content-Type"] = "text/plain";
230
+ body = payload.body;
231
+ } else if (payload.formData) {
232
+ body = payload.formData;
233
+ } else if (payload.formUrlencoded) {
234
+ headers["Content-Type"] = "application/x-www-form-urlencoded";
235
+ if (typeof payload.formUrlencoded === "object" && !_instanceof(payload.formUrlencoded, URLSearchParams)) {
236
+ body = qs.stringify(payload.formUrlencoded);
237
+ } else {
238
+ body = payload.formUrlencoded;
239
+ }
240
+ }
241
+ } else {
242
+ finalURL = path;
243
+ body = JSON.stringify({
244
+ args: args
245
+ });
246
+ headers = _defineProperty({}, "Content-Type", "application/json");
229
247
  }
230
248
  return [
231
249
  2,
package/dist/esm/node.js CHANGED
@@ -6,6 +6,19 @@ function _arrayLikeToArray(arr, len) {
6
6
  function _arrayWithoutHoles(arr) {
7
7
  if (Array.isArray(arr)) return _arrayLikeToArray(arr);
8
8
  }
9
+ function _defineProperty(obj, key, value) {
10
+ if (key in obj) {
11
+ Object.defineProperty(obj, key, {
12
+ value: value,
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true
16
+ });
17
+ } else {
18
+ obj[key] = value;
19
+ }
20
+ return obj;
21
+ }
9
22
  function _iterableToArray(iter) {
10
23
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
11
24
  }
@@ -47,7 +60,7 @@ var configure = function(options) {
47
60
  }
48
61
  };
49
62
  var createRequest = function(path, method, port) {
50
- var fetch = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : nodeFetch;
63
+ var httpMethodDecider = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "functionName", fetch = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : nodeFetch;
51
64
  var getFinalPath = compile(path, {
52
65
  encode: encodeURIComponent
53
66
  });
@@ -58,66 +71,71 @@ var createRequest = function(path, method, port) {
58
71
  args[_key] = arguments[_key];
59
72
  }
60
73
  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
74
  var body;
78
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
79
- try {
80
- for(var _iterator = realAllowedHeaders[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
81
- var key = _step.value;
82
- if (typeof webRequestHeaders[key] !== "undefined") {
83
- headers[key] = webRequestHeaders[key];
84
- }
75
+ var headers;
76
+ var url;
77
+ if (httpMethodDecider === "functionName") {
78
+ var payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
79
+ payload.params = payload.params || {};
80
+ var requestParams = args[0];
81
+ if (typeof requestParams === "object" && requestParams.params) {
82
+ var params = requestParams.params;
83
+ keys.forEach(function(key) {
84
+ payload.params[key.name] = params[key.name];
85
+ });
86
+ } else {
87
+ keys.forEach(function(key, index) {
88
+ payload.params[key.name] = args[index];
89
+ });
85
90
  }
86
- } catch (err) {
87
- _didIteratorError = true;
88
- _iteratorError = err;
89
- } finally{
91
+ var plainPath = getFinalPath(payload.params);
92
+ var finalPath = payload.query ? "".concat(plainPath, "?").concat(qs.stringify(payload.query)) : plainPath;
93
+ headers = payload.headers || {};
94
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
90
95
  try {
91
- if (!_iteratorNormalCompletion && _iterator.return != null) {
92
- _iterator.return();
96
+ for(var _iterator = realAllowedHeaders[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
97
+ var key = _step.value;
98
+ if (typeof webRequestHeaders[key] !== "undefined") {
99
+ headers[key] = webRequestHeaders[key];
100
+ }
93
101
  }
102
+ } catch (err) {
103
+ _didIteratorError = true;
104
+ _iteratorError = err;
94
105
  } finally{
95
- if (_didIteratorError) {
96
- throw _iteratorError;
106
+ try {
107
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
108
+ _iterator.return();
109
+ }
110
+ } finally{
111
+ if (_didIteratorError) {
112
+ throw _iteratorError;
113
+ }
97
114
  }
98
115
  }
99
- }
100
- if (payload.data) {
101
- headers["Content-Type"] = "application/json";
102
- body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
103
- } else if (payload.body) {
104
- headers["Content-Type"] = "text/plain";
105
- body = payload.body;
106
- } else if (payload.formData) {
107
- body = payload.formData;
108
- } else if (payload.formUrlencoded) {
109
- headers["Content-Type"] = "application/x-www-form-urlencoded";
110
- if (typeof payload.formUrlencoded === "object") {
111
- body = qs.stringify(payload.formUrlencoded);
112
- } else {
113
- body = payload.formUrlencoded;
116
+ if (payload.data) {
117
+ headers["Content-Type"] = "application/json";
118
+ body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
119
+ } else if (payload.body) {
120
+ headers["Content-Type"] = "text/plain";
121
+ body = payload.body;
122
+ } else if (payload.formData) {
123
+ body = payload.formData;
124
+ } else if (payload.formUrlencoded) {
125
+ headers["Content-Type"] = "application/x-www-form-urlencoded";
126
+ if (typeof payload.formUrlencoded === "object") {
127
+ body = qs.stringify(payload.formUrlencoded);
128
+ } else {
129
+ body = payload.formUrlencoded;
130
+ }
114
131
  }
132
+ url = "http://localhost:".concat(port).concat(finalPath);
133
+ } else {
134
+ url = path;
135
+ body = args;
136
+ headers = _defineProperty({}, "Content-Type", "application/json");
115
137
  }
116
- var url = "http://localhost:".concat(port).concat(finalPath);
117
138
  var fetcher = realRequest || originFetch;
118
- if (method.toLowerCase() === "get") {
119
- body = void 0;
120
- }
121
139
  return fetcher(url, {
122
140
  method: method,
123
141
  body: body,
@@ -14,47 +14,57 @@ 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
- const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
24
- payload.params = payload.params || {};
25
- const requestParams = args[0];
26
- if (typeof requestParams === "object" && requestParams.params) {
27
- const { params } = requestParams;
28
- keys.forEach((key) => {
29
- payload.params[key.name] = params[key.name];
30
- });
31
- } else {
32
- keys.forEach((key, index) => {
33
- payload.params[key.name] = args[index];
34
- });
35
- }
36
- const finalPath = getFinalPath(payload.params);
37
- const finalURL = payload.query ? `${finalPath}?${qs.stringify(payload.query)}` : finalPath;
38
- const headers = payload.headers || {};
39
- let body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
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" && !(payload.formUrlencoded instanceof URLSearchParams)) {
51
- body = qs.stringify(payload.formUrlencoded);
23
+ let body;
24
+ let finalURL;
25
+ let headers;
26
+ if (httpMethodDecider === "functionName") {
27
+ const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
28
+ payload.params = payload.params || {};
29
+ const requestParams = args[0];
30
+ if (typeof requestParams === "object" && requestParams.params) {
31
+ const { params } = requestParams;
32
+ keys.forEach((key) => {
33
+ payload.params[key.name] = params[key.name];
34
+ });
52
35
  } else {
53
- body = payload.formUrlencoded;
36
+ keys.forEach((key, index) => {
37
+ payload.params[key.name] = args[index];
38
+ });
54
39
  }
55
- }
56
- if (method.toLowerCase() === "get") {
57
- body = void 0;
40
+ const finalPath = getFinalPath(payload.params);
41
+ finalURL = payload.query ? `${finalPath}?${qs.stringify(payload.query)}` : finalPath;
42
+ headers = payload.headers || {};
43
+ body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
44
+ if (payload.data) {
45
+ headers["Content-Type"] = "application/json";
46
+ body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
47
+ } else if (payload.body) {
48
+ headers["Content-Type"] = "text/plain";
49
+ body = payload.body;
50
+ } else if (payload.formData) {
51
+ body = payload.formData;
52
+ } else if (payload.formUrlencoded) {
53
+ headers["Content-Type"] = "application/x-www-form-urlencoded";
54
+ if (typeof payload.formUrlencoded === "object" && !(payload.formUrlencoded instanceof URLSearchParams)) {
55
+ body = qs.stringify(payload.formUrlencoded);
56
+ } else {
57
+ body = payload.formUrlencoded;
58
+ }
59
+ }
60
+ } else {
61
+ finalURL = path;
62
+ body = JSON.stringify({
63
+ args
64
+ });
65
+ headers = {
66
+ ["Content-Type"]: "application/json"
67
+ };
58
68
  }
59
69
  return fetcher(finalURL, {
60
70
  method,
@@ -16,55 +16,62 @@ 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
- for (const key of realAllowedHeaders) {
43
- if (typeof webRequestHeaders[key] !== "undefined") {
44
- headers[key] = webRequestHeaders[key];
45
- }
46
- }
47
- if (payload.data) {
48
- headers["Content-Type"] = "application/json";
49
- body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
50
- } else if (payload.body) {
51
- headers["Content-Type"] = "text/plain";
52
- body = payload.body;
53
- } else if (payload.formData) {
54
- body = payload.formData;
55
- } else if (payload.formUrlencoded) {
56
- headers["Content-Type"] = "application/x-www-form-urlencoded";
57
- if (typeof payload.formUrlencoded === "object") {
58
- body = qs.stringify(payload.formUrlencoded);
26
+ let headers;
27
+ let url;
28
+ if (httpMethodDecider === "functionName") {
29
+ const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
30
+ payload.params = payload.params || {};
31
+ const requestParams = args[0];
32
+ if (typeof requestParams === "object" && requestParams.params) {
33
+ const { params } = requestParams;
34
+ keys.forEach((key) => {
35
+ payload.params[key.name] = params[key.name];
36
+ });
59
37
  } else {
60
- body = payload.formUrlencoded;
38
+ keys.forEach((key, index) => {
39
+ payload.params[key.name] = args[index];
40
+ });
61
41
  }
42
+ const plainPath = getFinalPath(payload.params);
43
+ const finalPath = payload.query ? `${plainPath}?${qs.stringify(payload.query)}` : plainPath;
44
+ headers = payload.headers || {};
45
+ for (const key of realAllowedHeaders) {
46
+ if (typeof webRequestHeaders[key] !== "undefined") {
47
+ headers[key] = webRequestHeaders[key];
48
+ }
49
+ }
50
+ if (payload.data) {
51
+ headers["Content-Type"] = "application/json";
52
+ body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
53
+ } else if (payload.body) {
54
+ headers["Content-Type"] = "text/plain";
55
+ body = payload.body;
56
+ } else if (payload.formData) {
57
+ body = payload.formData;
58
+ } else if (payload.formUrlencoded) {
59
+ headers["Content-Type"] = "application/x-www-form-urlencoded";
60
+ if (typeof payload.formUrlencoded === "object") {
61
+ body = qs.stringify(payload.formUrlencoded);
62
+ } else {
63
+ body = payload.formUrlencoded;
64
+ }
65
+ }
66
+ url = `http://localhost:${port}${finalPath}`;
67
+ } else {
68
+ url = path;
69
+ body = args;
70
+ headers = {
71
+ ["Content-Type"]: "application/json"
72
+ };
62
73
  }
63
- const url = `http://localhost:${port}${finalPath}`;
64
74
  const fetcher = realRequest || originFetch;
65
- if (method.toLowerCase() === "get") {
66
- body = void 0;
67
- }
68
75
  return fetcher(url, { method, body, headers });
69
76
  };
70
77
  return sender;