@modern-js/create-request 2.5.1-alpha.2 → 2.5.1-alpha.4

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.
@@ -0,0 +1,187 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _asyncToGenerator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _instanceof(left, right) {
31
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
32
+ return !!right[Symbol.hasInstance](left);
33
+ } else {
34
+ return left instanceof right;
35
+ }
36
+ }
37
+ var __generator = this && this.__generator || function(thisArg, body) {
38
+ var f, y, t, g, _ = {
39
+ label: 0,
40
+ sent: function() {
41
+ if (t[0] & 1) throw t[1];
42
+ return t[1];
43
+ },
44
+ trys: [],
45
+ ops: []
46
+ };
47
+ return(g = {
48
+ next: verb(0),
49
+ "throw": verb(1),
50
+ "return": verb(2)
51
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
52
+ return this;
53
+ }), g);
54
+ function verb(n) {
55
+ return function(v) {
56
+ return step([
57
+ n,
58
+ v
59
+ ]);
60
+ };
61
+ }
62
+ function step(op) {
63
+ if (f) throw new TypeError("Generator is already executing.");
64
+ while(_)try {
65
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
66
+ if (y = 0, t) op = [
67
+ op[0] & 2,
68
+ t.value
69
+ ];
70
+ switch(op[0]){
71
+ case 0:
72
+ case 1:
73
+ t = op;
74
+ break;
75
+ case 4:
76
+ _.label++;
77
+ return {
78
+ value: op[1],
79
+ done: false
80
+ };
81
+ case 5:
82
+ _.label++;
83
+ y = op[1];
84
+ op = [
85
+ 0
86
+ ];
87
+ continue;
88
+ case 7:
89
+ op = _.ops.pop();
90
+ _.trys.pop();
91
+ continue;
92
+ default:
93
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
94
+ _ = 0;
95
+ continue;
96
+ }
97
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
98
+ _.label = op[1];
99
+ break;
100
+ }
101
+ if (op[0] === 6 && _.label < t[1]) {
102
+ _.label = t[1];
103
+ t = op;
104
+ break;
105
+ }
106
+ if (t && _.label < t[2]) {
107
+ _.label = t[2];
108
+ _.ops.push(op);
109
+ break;
110
+ }
111
+ if (t[2]) _.ops.pop();
112
+ _.trys.pop();
113
+ continue;
114
+ }
115
+ op = body.call(thisArg, _);
116
+ } catch (e) {
117
+ op = [
118
+ 6,
119
+ e
120
+ ];
121
+ y = 0;
122
+ } finally{
123
+ f = t = 0;
124
+ }
125
+ if (op[0] & 5) throw op[1];
126
+ return {
127
+ value: op[0] ? op[1] : void 0,
128
+ done: true
129
+ };
130
+ }
131
+ };
132
+ var handleRes = function() {
133
+ var _ref = _asyncToGenerator(function(res) {
134
+ var contentType, data;
135
+ return __generator(this, function(_state) {
136
+ switch(_state.label){
137
+ case 0:
138
+ contentType = res.headers.get("content-type");
139
+ if (!!res.ok) return [
140
+ 3,
141
+ 2
142
+ ];
143
+ return [
144
+ 4,
145
+ res.json()
146
+ ];
147
+ case 1:
148
+ data = _state.sent();
149
+ res.data = data;
150
+ throw res;
151
+ case 2:
152
+ if ((contentType === null || contentType === void 0 ? void 0 : contentType.includes("application/json")) || (contentType === null || contentType === void 0 ? void 0 : contentType.includes("text/json"))) {
153
+ return [
154
+ 2,
155
+ res.json()
156
+ ];
157
+ }
158
+ if ((contentType === null || contentType === void 0 ? void 0 : contentType.includes("text/html")) || (contentType === null || contentType === void 0 ? void 0 : contentType.includes("text/plain"))) {
159
+ return [
160
+ 2,
161
+ res.text()
162
+ ];
163
+ }
164
+ if (((contentType === null || contentType === void 0 ? void 0 : contentType.includes("application/x-www-form-urlencoded")) || (contentType === null || contentType === void 0 ? void 0 : contentType.includes("multipart/form-data"))) && _instanceof(res, Response)) {
165
+ return [
166
+ 2,
167
+ res.formData()
168
+ ];
169
+ }
170
+ if (contentType === null || contentType === void 0 ? void 0 : contentType.includes("application/octet-stream")) {
171
+ return [
172
+ 2,
173
+ res.arrayBuffer()
174
+ ];
175
+ }
176
+ return [
177
+ 2,
178
+ res.text()
179
+ ];
180
+ }
181
+ });
182
+ });
183
+ return function handleRes(res) {
184
+ return _ref.apply(this, arguments);
185
+ };
186
+ }();
187
+ export { handleRes };
@@ -0,0 +1,36 @@
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithoutHoles(arr) {
7
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
8
+ }
9
+ function _iterableToArray(iter) {
10
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
11
+ }
12
+ function _nonIterableSpread() {
13
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
14
+ }
15
+ function _toConsumableArray(arr) {
16
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
17
+ }
18
+ function _unsupportedIterableToArray(o, minLen) {
19
+ if (!o) return;
20
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
21
+ var n = Object.prototype.toString.call(o).slice(8, -1);
22
+ if (n === "Object" && o.constructor) n = o.constructor.name;
23
+ if (n === "Map" || n === "Set") return Array.from(n);
24
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
25
+ }
26
+ import { isBrowser } from "@modern-js/utils";
27
+ import { createRequest as browser } from "./browser";
28
+ import { createRequest as node } from "./node";
29
+ var createRequest = function() {
30
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
31
+ args[_key] = arguments[_key];
32
+ }
33
+ return isBrowser() ? browser.apply(void 0, _toConsumableArray(args)) : node.apply(void 0, _toConsumableArray(args));
34
+ };
35
+ var src_default = createRequest;
36
+ export { src_default as default };
@@ -0,0 +1,147 @@
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithoutHoles(arr) {
7
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
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
+ }
22
+ function _iterableToArray(iter) {
23
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
24
+ }
25
+ function _nonIterableSpread() {
26
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
27
+ }
28
+ function _toConsumableArray(arr) {
29
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
30
+ }
31
+ function _unsupportedIterableToArray(o, minLen) {
32
+ if (!o) return;
33
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
34
+ var n = Object.prototype.toString.call(o).slice(8, -1);
35
+ if (n === "Object" && o.constructor) n = o.constructor.name;
36
+ if (n === "Map" || n === "Set") return Array.from(n);
37
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
38
+ }
39
+ import nodeFetch from "node-fetch";
40
+ import { compile, pathToRegexp } from "path-to-regexp";
41
+ import { useHeaders } from "@modern-js/utils/ssr";
42
+ import qs from "query-string";
43
+ import { handleRes } from "./handleRes";
44
+ var realRequest;
45
+ var realAllowedHeaders = [];
46
+ var originFetch = function() {
47
+ for(var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++){
48
+ params[_key] = arguments[_key];
49
+ }
50
+ return nodeFetch.apply(void 0, _toConsumableArray(params)).then(handleRes);
51
+ };
52
+ var configure = function(options) {
53
+ var request = options.request, interceptor = options.interceptor, allowedHeaders = options.allowedHeaders;
54
+ realRequest = request || originFetch;
55
+ if (interceptor && !request) {
56
+ realRequest = interceptor(nodeFetch);
57
+ }
58
+ if (Array.isArray(allowedHeaders)) {
59
+ realAllowedHeaders = allowedHeaders;
60
+ }
61
+ };
62
+ var createRequest = function(path, method, port) {
63
+ var httpMethodDecider = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : "functionName", fetch = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : nodeFetch;
64
+ var getFinalPath = compile(path, {
65
+ encode: encodeURIComponent
66
+ });
67
+ var keys = [];
68
+ pathToRegexp(path, keys);
69
+ var sender = function() {
70
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
71
+ args[_key] = arguments[_key];
72
+ }
73
+ var webRequestHeaders = useHeaders();
74
+ var body;
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
+ });
90
+ }
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;
95
+ try {
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
+ }
101
+ }
102
+ } catch (err) {
103
+ _didIteratorError = true;
104
+ _iteratorError = err;
105
+ } finally{
106
+ try {
107
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
108
+ _iterator.return();
109
+ }
110
+ } finally{
111
+ if (_didIteratorError) {
112
+ throw _iteratorError;
113
+ }
114
+ }
115
+ }
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
+ }
131
+ }
132
+ url = "http://localhost:".concat(port).concat(finalPath);
133
+ } else {
134
+ url = path;
135
+ body = args;
136
+ headers = _defineProperty({}, "Content-Type", "application/json");
137
+ }
138
+ var fetcher = realRequest || originFetch;
139
+ return fetcher(url, {
140
+ method: method,
141
+ body: body,
142
+ headers: headers
143
+ });
144
+ };
145
+ return sender;
146
+ };
147
+ export { configure, createRequest };
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,80 @@
1
+ import { compile, pathToRegexp } from "path-to-regexp";
2
+ import qs from "query-string";
3
+ import { handleRes } from "./handleRes";
4
+ let realRequest;
5
+ let realAllowedHeaders;
6
+ const originFetch = (...params) => fetch(...params).then(handleRes);
7
+ const configure = (options) => {
8
+ const { request, interceptor, allowedHeaders } = options;
9
+ realRequest = request || originFetch;
10
+ if (interceptor && !request) {
11
+ realRequest = interceptor(fetch);
12
+ }
13
+ if (Array.isArray(allowedHeaders)) {
14
+ realAllowedHeaders = allowedHeaders;
15
+ }
16
+ };
17
+ const createRequest = (path, method, port, httpMethodDecider = "functionName", fetch2 = originFetch) => {
18
+ const getFinalPath = compile(path, { encode: encodeURIComponent });
19
+ const keys = [];
20
+ pathToRegexp(path, keys);
21
+ const sender = async (...args) => {
22
+ const fetcher = realRequest || originFetch;
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
+ });
35
+ } else {
36
+ keys.forEach((key, index) => {
37
+ payload.params[key.name] = args[index];
38
+ });
39
+ }
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
+ };
68
+ }
69
+ return fetcher(finalURL, {
70
+ method,
71
+ body,
72
+ headers
73
+ });
74
+ };
75
+ return sender;
76
+ };
77
+ export {
78
+ configure,
79
+ createRequest
80
+ };
@@ -0,0 +1,24 @@
1
+ const handleRes = async (res) => {
2
+ const contentType = res.headers.get("content-type");
3
+ if (!res.ok) {
4
+ const data = await res.json();
5
+ res.data = data;
6
+ throw res;
7
+ }
8
+ if ((contentType == null ? void 0 : contentType.includes("application/json")) || (contentType == null ? void 0 : contentType.includes("text/json"))) {
9
+ return res.json();
10
+ }
11
+ if ((contentType == null ? void 0 : contentType.includes("text/html")) || (contentType == null ? void 0 : contentType.includes("text/plain"))) {
12
+ return res.text();
13
+ }
14
+ if (((contentType == null ? void 0 : contentType.includes("application/x-www-form-urlencoded")) || (contentType == null ? void 0 : contentType.includes("multipart/form-data"))) && res instanceof Response) {
15
+ return res.formData();
16
+ }
17
+ if (contentType == null ? void 0 : contentType.includes("application/octet-stream")) {
18
+ return res.arrayBuffer();
19
+ }
20
+ return res.text();
21
+ };
22
+ export {
23
+ handleRes
24
+ };
@@ -0,0 +1,8 @@
1
+ import { isBrowser } from "@modern-js/utils";
2
+ import { createRequest as browser } from "./browser";
3
+ import { createRequest as node } from "./node";
4
+ const createRequest = (...args) => isBrowser() ? browser(...args) : node(...args);
5
+ var src_default = createRequest;
6
+ export {
7
+ src_default as default
8
+ };
@@ -0,0 +1,82 @@
1
+ import nodeFetch from "node-fetch";
2
+ import { compile, pathToRegexp } from "path-to-regexp";
3
+ import { useHeaders } from "@modern-js/utils/ssr";
4
+ import qs from "query-string";
5
+ import { handleRes } from "./handleRes";
6
+ let realRequest;
7
+ let realAllowedHeaders = [];
8
+ const originFetch = (...params) => nodeFetch(...params).then(handleRes);
9
+ const configure = (options) => {
10
+ const { request, interceptor, allowedHeaders } = options;
11
+ realRequest = request || originFetch;
12
+ if (interceptor && !request) {
13
+ realRequest = interceptor(nodeFetch);
14
+ }
15
+ if (Array.isArray(allowedHeaders)) {
16
+ realAllowedHeaders = allowedHeaders;
17
+ }
18
+ };
19
+ const createRequest = (path, method, port, httpMethodDecider = "functionName", fetch = nodeFetch) => {
20
+ const getFinalPath = compile(path, { encode: encodeURIComponent });
21
+ const keys = [];
22
+ pathToRegexp(path, keys);
23
+ const sender = (...args) => {
24
+ const webRequestHeaders = useHeaders();
25
+ let body;
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
+ });
37
+ } else {
38
+ keys.forEach((key, index) => {
39
+ payload.params[key.name] = args[index];
40
+ });
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
+ };
73
+ }
74
+ const fetcher = realRequest || originFetch;
75
+ return fetcher(url, { method, body, headers });
76
+ };
77
+ return sender;
78
+ };
79
+ export {
80
+ configure,
81
+ createRequest
82
+ };
File without changes
@@ -0,0 +1,87 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import { compile, pathToRegexp } from "path-to-regexp";
22
+ import qs from "query-string";
23
+ import { handleRes } from "./handleRes";
24
+ let realRequest;
25
+ let realAllowedHeaders;
26
+ const originFetch = (...params) => fetch(...params).then(handleRes);
27
+ const configure = (options) => {
28
+ const { request, interceptor, allowedHeaders } = options;
29
+ realRequest = request || originFetch;
30
+ if (interceptor && !request) {
31
+ realRequest = interceptor(fetch);
32
+ }
33
+ if (Array.isArray(allowedHeaders)) {
34
+ realAllowedHeaders = allowedHeaders;
35
+ }
36
+ };
37
+ const createRequest = (path, method, port, fetch2 = originFetch) => {
38
+ const getFinalPath = compile(path, { encode: encodeURIComponent });
39
+ const keys = [];
40
+ pathToRegexp(path, keys);
41
+ const sender = (...args) => __async(void 0, null, function* () {
42
+ const fetcher = realRequest || originFetch;
43
+ const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
44
+ payload.params = payload.params || {};
45
+ const requestParams = args[0];
46
+ if (typeof requestParams === "object" && requestParams.params) {
47
+ const { params } = requestParams;
48
+ keys.forEach((key) => {
49
+ payload.params[key.name] = params[key.name];
50
+ });
51
+ } else {
52
+ keys.forEach((key, index) => {
53
+ payload.params[key.name] = args[index];
54
+ });
55
+ }
56
+ const finalPath = getFinalPath(payload.params);
57
+ const finalURL = payload.query ? `${finalPath}?${qs.stringify(payload.query)}` : finalPath;
58
+ const headers = payload.headers || {};
59
+ let body = payload.data && typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
60
+ if (payload.data) {
61
+ headers["Content-Type"] = "application/json";
62
+ body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
63
+ } else if (payload.body) {
64
+ headers["Content-Type"] = "text/plain";
65
+ body = payload.body;
66
+ } else if (payload.formData) {
67
+ body = payload.formData;
68
+ } else if (payload.formUrlencoded) {
69
+ headers["Content-Type"] = "application/x-www-form-urlencoded";
70
+ if (typeof payload.formUrlencoded === "object" && !(payload.formUrlencoded instanceof URLSearchParams)) {
71
+ body = qs.stringify(payload.formUrlencoded);
72
+ } else {
73
+ body = payload.formUrlencoded;
74
+ }
75
+ }
76
+ return fetcher(finalURL, {
77
+ method,
78
+ body,
79
+ headers
80
+ });
81
+ });
82
+ return sender;
83
+ };
84
+ export {
85
+ configure,
86
+ createRequest
87
+ };