@jayfong/x-request 2.13.0 → 2.15.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/lib/_cjs/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  exports.__esModule = true;
5
- exports.XRequestFormUrlencoded = exports.XRequestFormStream = exports.XRequestFormFile = exports.XRequestFormData = exports.XRequest = void 0;
5
+ exports.xr = exports.XRequestFormUrlencoded = exports.XRequestFormStream = exports.XRequestFormFile = exports.XRequestFormData = exports.XRequest = void 0;
6
6
  var _assert = _interopRequireDefault(require("assert"));
7
7
  var _formData = _interopRequireDefault(require("form-data"));
8
8
  var _formstream = _interopRequireDefault(require("formstream"));
@@ -77,6 +77,16 @@ exports.XRequestFormFile = XRequestFormFile;
77
77
  class XRequest {
78
78
  static getGotOptions(options, responseType) {
79
79
  var _gotOptions$headers, _userAgent, _gotOptions$headers$_, _options$userAgent;
80
+ let url = options.url;
81
+ if (options.query) {
82
+ const _url = new URL(url);
83
+ const query = options.query instanceof URLSearchParams ? options.query : new URLSearchParams(options.query);
84
+ query.forEach((v, k) => {
85
+ _url.searchParams.set(k, v);
86
+ });
87
+ url = _url.toString();
88
+ }
89
+ options.url = url;
80
90
  const gotOptions = {
81
91
  url: options.url,
82
92
  responseType: responseType === 'stream' ? undefined : responseType,
@@ -117,15 +127,6 @@ class XRequest {
117
127
  return gotOptions;
118
128
  }
119
129
  static get(options, responseType) {
120
- let url = options.url;
121
- if (options.data) {
122
- const _url = new URL(url);
123
- Object.keys(options.data).forEach(key => {
124
- _url.searchParams.set(key, options.data[key]);
125
- });
126
- url = _url.toString();
127
- }
128
- options.url = url;
129
130
  const res = (0, _got.default)({
130
131
  method: 'GET',
131
132
  ...this.getGotOptions(options, responseType || 'buffer')
@@ -202,29 +203,22 @@ class XRequest {
202
203
  static formFile(file, options) {
203
204
  return new XRequestFormFile(file, options);
204
205
  }
206
+ static extend(options) {
207
+ return new XRequest(options);
208
+ }
205
209
  constructor(options) {
206
210
  this.options = options;
207
211
  }
208
212
  get(options, responseType) {
209
- var _this$options;
210
213
  return XRequest.get({
211
214
  ...this.options,
212
- ...options,
213
- headers: {
214
- ...((_this$options = this.options) == null ? void 0 : _this$options.headers),
215
- ...options.headers
216
- }
215
+ ...options
217
216
  }, responseType);
218
217
  }
219
218
  post(options, responseType) {
220
- var _this$options2;
221
219
  return XRequest.post({
222
220
  ...this.options,
223
- ...options,
224
- headers: {
225
- ...((_this$options2 = this.options) == null ? void 0 : _this$options2.headers),
226
- ...options.headers
227
- }
221
+ ...options
228
222
  }, responseType);
229
223
  }
230
224
  async getText(options) {
@@ -260,5 +254,11 @@ class XRequest {
260
254
  formFile(file, options) {
261
255
  return XRequest.formFile(file, options);
262
256
  }
257
+ extend(options) {
258
+ return new XRequest({
259
+ ...this.options,
260
+ ...options
261
+ });
262
+ }
263
263
  }
264
- exports.XRequest = XRequest;
264
+ exports.xr = exports.XRequest = XRequest;
package/lib/index.d.ts CHANGED
@@ -11,6 +11,10 @@ export interface XRequestOptions {
11
11
  * 请求地址
12
12
  */
13
13
  url: string;
14
+ /**
15
+ * 查询参数
16
+ */
17
+ query?: URLSearchParams | ConstructorParameters<typeof URLSearchParams>[0];
14
18
  /**
15
19
  * 代理地址
16
20
  */
@@ -52,13 +56,11 @@ export interface XRequestResponse<T> {
52
56
  data: T;
53
57
  }
54
58
  export interface XRequestGetOptions extends XRequestOptions {
55
- data?: Record<string, any>;
56
59
  }
57
60
  export interface XRequestPostOptions extends XRequestOptions {
58
61
  data?: Record<string, any> | FormData | URLSearchParams;
59
62
  }
60
63
  export interface XRequestGetStreamOptions extends XRequestOptions {
61
- data?: Record<string, any>;
62
64
  }
63
65
  export interface XRequestPostStreamOptions extends XRequestOptions {
64
66
  data?: Record<string, any> | FormData | URLSearchParams | FormStream;
@@ -125,6 +127,7 @@ export declare class XRequest {
125
127
  name?: string;
126
128
  type?: string;
127
129
  }): XRequestFormFile;
130
+ static extend(options: OmitStrict<XRequestOptions, 'url'>): XRequest;
128
131
  constructor(options?: OmitStrict<XRequestOptions, 'url'>);
129
132
  get(options: XRequestGetStreamOptions): Promise<XRequestResponse<Buffer>>;
130
133
  get(options: XRequestGetStreamOptions, responseType: 'buffer'): Promise<XRequestResponse<Buffer>>;
@@ -158,4 +161,6 @@ export declare class XRequest {
158
161
  name?: string;
159
162
  type?: string;
160
163
  }): XRequestFormFile;
164
+ extend(options: OmitStrict<XRequestOptions, 'url'>): XRequest;
161
165
  }
166
+ export { XRequest as xr };
package/lib/index.js CHANGED
@@ -68,6 +68,16 @@ export class XRequestFormFile {
68
68
  export class XRequest {
69
69
  static getGotOptions(options, responseType) {
70
70
  var _gotOptions$headers, _userAgent, _gotOptions$headers$_, _options$userAgent;
71
+ let url = options.url;
72
+ if (options.query) {
73
+ const _url = new URL(url);
74
+ const query = options.query instanceof URLSearchParams ? options.query : new URLSearchParams(options.query);
75
+ query.forEach((v, k) => {
76
+ _url.searchParams.set(k, v);
77
+ });
78
+ url = _url.toString();
79
+ }
80
+ options.url = url;
71
81
  const gotOptions = {
72
82
  url: options.url,
73
83
  responseType: responseType === 'stream' ? undefined : responseType,
@@ -108,15 +118,6 @@ export class XRequest {
108
118
  return gotOptions;
109
119
  }
110
120
  static get(options, responseType) {
111
- let url = options.url;
112
- if (options.data) {
113
- const _url = new URL(url);
114
- Object.keys(options.data).forEach(key => {
115
- _url.searchParams.set(key, options.data[key]);
116
- });
117
- url = _url.toString();
118
- }
119
- options.url = url;
120
121
  const res = got({
121
122
  method: 'GET',
122
123
  ...this.getGotOptions(options, responseType || 'buffer')
@@ -193,29 +194,22 @@ export class XRequest {
193
194
  static formFile(file, options) {
194
195
  return new XRequestFormFile(file, options);
195
196
  }
197
+ static extend(options) {
198
+ return new XRequest(options);
199
+ }
196
200
  constructor(options) {
197
201
  this.options = options;
198
202
  }
199
203
  get(options, responseType) {
200
- var _this$options;
201
204
  return XRequest.get({
202
205
  ...this.options,
203
- ...options,
204
- headers: {
205
- ...((_this$options = this.options) == null ? void 0 : _this$options.headers),
206
- ...options.headers
207
- }
206
+ ...options
208
207
  }, responseType);
209
208
  }
210
209
  post(options, responseType) {
211
- var _this$options2;
212
210
  return XRequest.post({
213
211
  ...this.options,
214
- ...options,
215
- headers: {
216
- ...((_this$options2 = this.options) == null ? void 0 : _this$options2.headers),
217
- ...options.headers
218
- }
212
+ ...options
219
213
  }, responseType);
220
214
  }
221
215
  async getText(options) {
@@ -251,4 +245,11 @@ export class XRequest {
251
245
  formFile(file, options) {
252
246
  return XRequest.formFile(file, options);
253
247
  }
254
- }
248
+ extend(options) {
249
+ return new XRequest({
250
+ ...this.options,
251
+ ...options
252
+ });
253
+ }
254
+ }
255
+ export { XRequest as xr };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jayfong/x-request",
3
- "version": "2.13.0",
3
+ "version": "2.15.0",
4
4
  "license": "ISC",
5
5
  "sideEffects": false,
6
6
  "main": "lib/_cjs/index.js",