@modern-js/create-request 2.0.0-beta.2 → 2.0.0-beta.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.
@@ -1,53 +1,62 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var stdin_exports = {};
25
+ __export(stdin_exports, {
26
+ configure: () => configure,
27
+ createRequest: () => createRequest
5
28
  });
6
- exports.createRequest = exports.configure = void 0;
7
- var _nodeFetch = _interopRequireDefault(require("node-fetch"));
8
- var _pathToRegexp = require("path-to-regexp");
9
- var _ssr = require("@modern-js/utils/ssr");
10
- var _queryString = _interopRequireDefault(require("query-string"));
11
- var _handleRes = require("./handleRes");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+ module.exports = __toCommonJS(stdin_exports);
30
+ var import_node_fetch = __toESM(require("node-fetch"));
31
+ var import_path_to_regexp = require("path-to-regexp");
32
+ var import_ssr = require("@modern-js/utils/ssr");
33
+ var import_query_string = __toESM(require("query-string"));
34
+ var import_handleRes = require("./handleRes");
13
35
  let realRequest;
14
36
  let realAllowedHeaders = [];
15
- const originFetch = (...params) => (0, _nodeFetch.default)(...params).then(_handleRes.handleRes);
16
- const configure = options => {
17
- const {
18
- request,
19
- interceptor,
20
- allowedHeaders
21
- } = options;
37
+ const originFetch = (...params) => (0, import_node_fetch.default)(...params).then(import_handleRes.handleRes);
38
+ const configure = (options) => {
39
+ const { request, interceptor, allowedHeaders } = options;
22
40
  realRequest = request || originFetch;
23
41
  if (interceptor && !request) {
24
- realRequest = interceptor(_nodeFetch.default);
42
+ realRequest = interceptor(import_node_fetch.default);
25
43
  }
26
44
  if (Array.isArray(allowedHeaders)) {
27
45
  realAllowedHeaders = allowedHeaders;
28
46
  }
29
47
  };
30
- exports.configure = configure;
31
- const createRequest = (path, method, port,
32
- // 后续可能要修改,暂时先保留
33
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
34
- fetch = _nodeFetch.default) => {
35
- const getFinalPath = (0, _pathToRegexp.compile)(path, {
36
- encode: encodeURIComponent
37
- });
48
+ const createRequest = (path, method, port, fetch = import_node_fetch.default) => {
49
+ const getFinalPath = (0, import_path_to_regexp.compile)(path, { encode: encodeURIComponent });
38
50
  const keys = [];
39
- (0, _pathToRegexp.pathToRegexp)(path, keys);
51
+ (0, import_path_to_regexp.pathToRegexp)(path, keys);
40
52
  const sender = (...args) => {
41
- const webRequestHeaders = (0, _ssr.useHeaders)();
42
- const payload = typeof args[args.length - 1] === 'object' ? args[args.length - 1] : {};
53
+ const webRequestHeaders = (0, import_ssr.useHeaders)();
54
+ const payload = typeof args[args.length - 1] === "object" ? args[args.length - 1] : {};
43
55
  payload.params = payload.params || {};
44
56
  const requestParams = args[0];
45
- // 这种场景下是使用 schema,所以 params 要从 args[0] 中获取
46
- if (typeof requestParams === 'object' && requestParams.params) {
47
- const {
48
- params
49
- } = requestParams;
50
- keys.forEach(key => {
57
+ if (typeof requestParams === "object" && requestParams.params) {
58
+ const { params } = requestParams;
59
+ keys.forEach((key) => {
51
60
  payload.params[key.name] = params[key.name];
52
61
  });
53
62
  } else {
@@ -56,42 +65,33 @@ fetch = _nodeFetch.default) => {
56
65
  });
57
66
  }
58
67
  const plainPath = getFinalPath(payload.params);
59
- const finalPath = payload.query ? `${plainPath}?${_queryString.default.stringify(payload.query)}` : plainPath;
68
+ const finalPath = payload.query ? `${plainPath}?${import_query_string.default.stringify(payload.query)}` : plainPath;
60
69
  const headers = payload.headers || {};
61
70
  let body;
62
71
  for (const key of realAllowedHeaders) {
63
- if (typeof webRequestHeaders[key] !== 'undefined') {
72
+ if (typeof webRequestHeaders[key] !== "undefined") {
64
73
  headers[key] = webRequestHeaders[key];
65
74
  }
66
75
  }
67
76
  if (payload.data) {
68
- headers['Content-Type'] = 'application/json';
69
- body = typeof payload.data === 'object' ? JSON.stringify(payload.data) : payload.body;
77
+ headers["Content-Type"] = "application/json";
78
+ body = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.body;
70
79
  } else if (payload.body) {
71
- headers['Content-Type'] = 'text/plain';
72
- // eslint-disable-next-line prefer-destructuring
80
+ headers["Content-Type"] = "text/plain";
73
81
  body = payload.body;
74
82
  } else if (payload.formData) {
75
83
  body = payload.formData;
76
- // https://stackoverflow.com/questions/44919424/bad-content-type-header-no-multipart-boundary-nodejs
77
- // need multipart boundary auto attached by node-fetch when multipart is true
78
- // headers['Content-Type'] = 'multipart/form-data';
79
84
  } else if (payload.formUrlencoded) {
80
- headers['Content-Type'] = 'application/x-www-form-urlencoded';
81
- if (typeof payload.formUrlencoded === 'object') {
82
- body = _queryString.default.stringify(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);
83
88
  } else {
84
89
  body = payload.formUrlencoded;
85
90
  }
86
91
  }
87
92
  const url = `http://localhost:${port}${finalPath}`;
88
93
  const fetcher = realRequest || originFetch;
89
- return fetcher(url, {
90
- method,
91
- body,
92
- headers
93
- });
94
+ return fetcher(url, { method, body, headers });
94
95
  };
95
96
  return sender;
96
97
  };
97
- exports.createRequest = createRequest;
@@ -1,112 +1,243 @@
1
- import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
- import _typeof from "@babel/runtime/helpers/esm/typeof";
3
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
- import { compile, pathToRegexp } from 'path-to-regexp';
5
- import qs from 'query-string';
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 asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
+ try {
11
+ var info = gen[key](arg);
12
+ var value = info.value;
13
+ } catch (error) {
14
+ reject(error);
15
+ return;
16
+ }
17
+ if (info.done) {
18
+ resolve(value);
19
+ } else {
20
+ Promise.resolve(value).then(_next, _throw);
21
+ }
22
+ }
23
+ function _asyncToGenerator(fn) {
24
+ return function() {
25
+ var self = this, args = arguments;
26
+ return new Promise(function(resolve, reject) {
27
+ var gen = fn.apply(self, args);
28
+ function _next(value) {
29
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
30
+ }
31
+ function _throw(err) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
33
+ }
34
+ _next(undefined);
35
+ });
36
+ };
37
+ }
38
+ function _instanceof(left, right) {
39
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
40
+ return !!right[Symbol.hasInstance](left);
41
+ } else {
42
+ return left instanceof right;
43
+ }
44
+ }
45
+ function _iterableToArray(iter) {
46
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
47
+ }
48
+ function _nonIterableSpread() {
49
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
50
+ }
51
+ function _toConsumableArray(arr) {
52
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
53
+ }
54
+ function _unsupportedIterableToArray(o, minLen) {
55
+ if (!o) return;
56
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
57
+ var n = Object.prototype.toString.call(o).slice(8, -1);
58
+ if (n === "Object" && o.constructor) n = o.constructor.name;
59
+ if (n === "Map" || n === "Set") return Array.from(n);
60
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
61
+ }
62
+ var __generator = this && this.__generator || function(thisArg, body) {
63
+ var f, y, t, g, _ = {
64
+ label: 0,
65
+ sent: function() {
66
+ if (t[0] & 1) throw t[1];
67
+ return t[1];
68
+ },
69
+ trys: [],
70
+ ops: []
71
+ };
72
+ return(g = {
73
+ next: verb(0),
74
+ "throw": verb(1),
75
+ "return": verb(2)
76
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
77
+ return this;
78
+ }), g);
79
+ function verb(n) {
80
+ return function(v) {
81
+ return step([
82
+ n,
83
+ v
84
+ ]);
85
+ };
86
+ }
87
+ function step(op) {
88
+ if (f) throw new TypeError("Generator is already executing.");
89
+ while(_)try {
90
+ 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;
91
+ if (y = 0, t) op = [
92
+ op[0] & 2,
93
+ t.value
94
+ ];
95
+ switch(op[0]){
96
+ case 0:
97
+ case 1:
98
+ t = op;
99
+ break;
100
+ case 4:
101
+ _.label++;
102
+ return {
103
+ value: op[1],
104
+ done: false
105
+ };
106
+ case 5:
107
+ _.label++;
108
+ y = op[1];
109
+ op = [
110
+ 0
111
+ ];
112
+ continue;
113
+ case 7:
114
+ op = _.ops.pop();
115
+ _.trys.pop();
116
+ continue;
117
+ default:
118
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
119
+ _ = 0;
120
+ continue;
121
+ }
122
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
123
+ _.label = op[1];
124
+ break;
125
+ }
126
+ if (op[0] === 6 && _.label < t[1]) {
127
+ _.label = t[1];
128
+ t = op;
129
+ break;
130
+ }
131
+ if (t && _.label < t[2]) {
132
+ _.label = t[2];
133
+ _.ops.push(op);
134
+ break;
135
+ }
136
+ if (t[2]) _.ops.pop();
137
+ _.trys.pop();
138
+ continue;
139
+ }
140
+ op = body.call(thisArg, _);
141
+ } catch (e) {
142
+ op = [
143
+ 6,
144
+ e
145
+ ];
146
+ y = 0;
147
+ } finally{
148
+ f = t = 0;
149
+ }
150
+ if (op[0] & 5) throw op[1];
151
+ return {
152
+ value: op[0] ? op[1] : void 0,
153
+ done: true
154
+ };
155
+ }
156
+ };
157
+ import { compile, pathToRegexp } from "path-to-regexp";
158
+ import qs from "query-string";
6
159
  import { handleRes } from "./handleRes";
7
160
  var realRequest;
8
161
  var realAllowedHeaders;
9
- var originFetch = function originFetch() {
10
- return fetch.apply(void 0, arguments).then(handleRes);
162
+ var originFetch = function() {
163
+ for(var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++){
164
+ params[_key] = arguments[_key];
165
+ }
166
+ return fetch.apply(void 0, _toConsumableArray(params)).then(handleRes);
11
167
  };
12
- export var configure = function configure(options) {
13
- var request = options.request,
14
- interceptor = options.interceptor,
15
- allowedHeaders = options.allowedHeaders;
16
- realRequest = request || originFetch;
17
- if (interceptor && !request) {
18
- realRequest = interceptor(fetch);
19
- }
20
- if (Array.isArray(allowedHeaders)) {
21
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
22
- realAllowedHeaders = allowedHeaders;
23
- }
168
+ var configure = function(options) {
169
+ var request = options.request, interceptor = options.interceptor, allowedHeaders = options.allowedHeaders;
170
+ realRequest = request || originFetch;
171
+ if (interceptor && !request) {
172
+ realRequest = interceptor(fetch);
173
+ }
174
+ if (Array.isArray(allowedHeaders)) {
175
+ realAllowedHeaders = allowedHeaders;
176
+ }
24
177
  };
25
- export var createRequest = function createRequest(path, method, port) {
26
- var fetch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : originFetch;
27
- var getFinalPath = compile(path, {
28
- encode: encodeURIComponent
29
- });
30
- var keys = [];
31
- pathToRegexp(path, keys);
32
- var sender = /*#__PURE__*/function () {
33
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
34
- var _len,
35
- args,
36
- _key,
37
- fetcher,
38
- payload,
39
- requestParams,
40
- params,
41
- finalPath,
42
- finalURL,
43
- headers,
44
- body,
45
- _args = arguments;
46
- return _regeneratorRuntime().wrap(function _callee$(_context) {
47
- while (1) {
48
- switch (_context.prev = _context.next) {
49
- case 0:
50
- for (_len = _args.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
51
- args[_key] = _args[_key];
52
- }
53
- fetcher = realRequest || originFetch;
54
- payload = _typeof(args[args.length - 1]) === 'object' ? args[args.length - 1] : {};
55
- payload.params = payload.params || {};
56
- requestParams = args[0]; // 这种场景下是使用 schema,所以 params 要从 args[0] 中获取
57
- if (_typeof(requestParams) === 'object' && requestParams.params) {
58
- params = requestParams.params;
59
- keys.forEach(function (key) {
60
- payload.params[key.name] = params[key.name];
61
- });
62
- } else {
63
- keys.forEach(function (key, index) {
64
- payload.params[key.name] = args[index];
65
- });
66
- }
67
- finalPath = getFinalPath(payload.params);
68
- finalURL = payload.query ? "".concat(finalPath, "?").concat(qs.stringify(payload.query)) : finalPath;
69
- headers = payload.headers || {};
70
- body = payload.data && _typeof(payload.data) === 'object' ? JSON.stringify(payload.data) : payload.body;
71
- if (payload.data) {
72
- headers['Content-Type'] = 'application/json';
73
- body = _typeof(payload.data) === 'object' ? JSON.stringify(payload.data) : payload.body;
74
- } else if (payload.body) {
75
- headers['Content-Type'] = 'text/plain';
76
- // eslint-disable-next-line prefer-destructuring
77
- body = payload.body;
78
- } else if (payload.formData) {
79
- body = payload.formData;
80
- // https://stackoverflow.com/questions/44919424/bad-content-type-header-no-multipart-boundary-nodejs
81
- // need multipart boundary aotu attached by browser when multipart is true
82
- // headers['Content-Type'] = 'multipart/form-data';
83
- } else if (payload.formUrlencoded) {
84
- headers['Content-Type'] = 'application/x-www-form-urlencoded';
85
- if (_typeof(payload.formUrlencoded) === 'object' &&
86
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
87
- // @ts-expect-error
88
- // eslint-disable-next-line node/prefer-global/url-search-params,node/no-unsupported-features/node-builtins
89
- !(payload.formUrlencoded instanceof URLSearchParams)) {
90
- body = qs.stringify(payload.formUrlencoded);
178
+ var createRequest = function(path, method, port) {
179
+ var fetch2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : originFetch;
180
+ var getFinalPath = compile(path, {
181
+ encode: encodeURIComponent
182
+ });
183
+ var keys = [];
184
+ pathToRegexp(path, keys);
185
+ var sender = function() {
186
+ var _ref = _asyncToGenerator(function() {
187
+ var _len, args, _key, fetcher, payload, requestParams, params, finalPath, finalURL, headers, body;
188
+ var _arguments = arguments;
189
+ return __generator(this, function(_state) {
190
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
191
+ args[_key] = _arguments[_key];
192
+ }
193
+ 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
+ });
91
202
  } else {
92
- body = payload.formUrlencoded;
203
+ keys.forEach(function(key, index) {
204
+ payload.params[key.name] = args[index];
205
+ });
93
206
  }
94
- }
95
- return _context.abrupt("return", fetcher(finalURL, {
96
- method: method,
97
- body: body,
98
- headers: headers
99
- }));
100
- case 12:
101
- case "end":
102
- return _context.stop();
103
- }
104
- }
105
- }, _callee);
106
- }));
107
- return function sender() {
108
- return _ref.apply(this, arguments);
109
- };
110
- }();
111
- return sender;
112
- };
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);
223
+ } else {
224
+ body = payload.formUrlencoded;
225
+ }
226
+ }
227
+ return [
228
+ 2,
229
+ fetcher(finalURL, {
230
+ method: method,
231
+ body: body,
232
+ headers: headers
233
+ })
234
+ ];
235
+ });
236
+ });
237
+ return function sender() {
238
+ return _ref.apply(this, arguments);
239
+ };
240
+ }();
241
+ return sender;
242
+ };
243
+ export { configure, createRequest };