rekwest 4.4.0 → 4.4.2

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/README.md CHANGED
@@ -187,7 +187,7 @@ const {
187
187
  } = constants;
188
188
 
189
189
  const rk = rekwest.extend({
190
- baseURL: 'https://somewhe.re'
190
+ baseURL: 'https://somewhe.re',
191
191
  });
192
192
 
193
193
  const signal = AbortSignal.timeout(1e4);
package/dist/index.js CHANGED
@@ -86,8 +86,17 @@ const {
86
86
  HTTP2_HEADER_CONTENT_TYPE
87
87
  } = _nodeHttp2.default.constants;
88
88
  function rekwest(url, options) {
89
- return (0, _utils.transfer)((0, _validation.validation)((0, _utils.normalize)(url, options)));
89
+ return (0, _utils.transfer)((0, _validation.validation)((0, _utils.normalize)(url, options)), rekwest);
90
90
  }
91
+ Reflect.defineProperty(rekwest, 'defaults', {
92
+ enumerable: true,
93
+ get() {
94
+ return _defaults.default.stash;
95
+ },
96
+ set(value) {
97
+ _defaults.default.stash = (0, _utils.merge)(_defaults.default.stash, value);
98
+ }
99
+ });
91
100
  Reflect.defineProperty(rekwest, 'extend', {
92
101
  enumerable: true,
93
102
  value(options) {
@@ -124,13 +133,4 @@ Reflect.defineProperty(rekwest, 'stream', {
124
133
  });
125
134
  return req;
126
135
  }
127
- });
128
- Reflect.defineProperty(rekwest, 'defaults', {
129
- enumerable: true,
130
- get() {
131
- return _defaults.default.stash;
132
- },
133
- set(value) {
134
- _defaults.default.stash = (0, _utils.merge)(_defaults.default.stash, value);
135
- }
136
136
  });
@@ -73,7 +73,7 @@ const postflight = (req, res, options, {
73
73
  return res.emit('error', new _errors.RequestError('URL scheme must be "http" or "https".'));
74
74
  }
75
75
  if (!(0, _utils.sameOrigin)(location, url)) {
76
- Reflect.set(options, 'h2', false);
76
+ options.h2 = false;
77
77
  if ([_constants.requestCredentials.omit, _constants.requestCredentials.sameOrigin].includes(credentials)) {
78
78
  Object.keys(options.headers).filter(it => new RegExp(HTTP2_HEADER_AUTHORIZATION, 'i').test(it)).forEach(it => Reflect.deleteProperty(options.headers, it));
79
79
  location.password = location.username = '';
@@ -82,17 +82,17 @@ const postflight = (req, res, options, {
82
82
  }
83
83
  }
84
84
  }
85
- options.url = location;
86
85
  if (statusCode !== HTTP_STATUS_SEE_OTHER && options.body?.pipe?.constructor === Function) {
87
86
  return res.emit('error', new _errors.RequestError(`Unable to ${redirect} redirect with streamable body.`));
88
87
  }
89
- options.follow--;
90
88
  if ([HTTP_STATUS_MOVED_PERMANENTLY, HTTP_STATUS_FOUND].includes(statusCode) && options.method === HTTP2_METHOD_POST || statusCode === HTTP_STATUS_SEE_OTHER && ![HTTP2_METHOD_GET, HTTP2_METHOD_HEAD].includes(options.method)) {
91
89
  Object.keys(options.headers).filter(it => /^content-/i.test(it)).forEach(it => Reflect.deleteProperty(options.headers, it));
92
90
  options.body = null;
93
91
  options.method = HTTP2_METHOD_GET;
94
92
  }
95
- Reflect.set(options, 'redirected', true);
93
+ options.follow--;
94
+ options.redirected = true;
95
+ options.url = location;
96
96
  if (statusCode === HTTP_STATUS_MOVED_PERMANENTLY && res.headers[HTTP2_HEADER_RETRY_AFTER]) {
97
97
  let interval = res.headers[HTTP2_HEADER_RETRY_AFTER];
98
98
  interval = Number(interval) * 1000 || new Date(interval) - Date.now();
package/dist/utils.js CHANGED
@@ -13,10 +13,10 @@ var _promises = require("node:timers/promises");
13
13
  var _nodeUtil = require("node:util");
14
14
  var _nodeZlib = _interopRequireDefault(require("node:zlib"));
15
15
  var _ackn = require("./ackn");
16
+ var _defaults = _interopRequireDefault(require("./defaults"));
16
17
  var _errors = require("./errors");
17
18
  var _file = require("./file");
18
19
  var _formdata = require("./formdata");
19
- var _index = _interopRequireDefault(require("./index"));
20
20
  var _mediatypes = require("./mediatypes");
21
21
  var _postflight = require("./postflight");
22
22
  var _preflight = require("./preflight");
@@ -149,7 +149,7 @@ const merge = (target = {}, ...rest) => {
149
149
  exports.merge = merge;
150
150
  const normalize = (url, options = {}) => {
151
151
  if (!options.redirected) {
152
- options = merge(_index.default.defaults, options);
152
+ options = merge(_defaults.default.stash, options);
153
153
  }
154
154
  if (options.trimTrailingSlashes) {
155
155
  url = `${url}`.replace(/(?<!:)\/+/g, '/');
@@ -171,7 +171,7 @@ async function* tap(value) {
171
171
  yield await value.arrayBuffer();
172
172
  }
173
173
  }
174
- const transfer = async options => {
174
+ const transfer = async (options, overact) => {
175
175
  const {
176
176
  digest,
177
177
  redirected,
@@ -245,7 +245,7 @@ const transfer = async options => {
245
245
  }
246
246
  retry.attempts--;
247
247
  retry.interval = interval;
248
- return (0, _promises.setTimeout)(interval).then(() => (0, _index.default)(url, options));
248
+ return (0, _promises.setTimeout)(interval).then(() => overact(url, options));
249
249
  }
250
250
  if (digest && !redirected && ex.body) {
251
251
  ex.body = await ex.body();
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "@babel/eslint-parser": "^7.21.8",
14
14
  "@babel/preset-env": "^7.21.5",
15
15
  "c8": "^7.13.0",
16
- "eslint": "^8.40.0",
16
+ "eslint": "^8.41.0",
17
17
  "eslint-config-ultra-refined": "^2.13.0",
18
18
  "mocha": "^10.2.0"
19
19
  },
@@ -67,5 +67,5 @@
67
67
  "test:bail": "mocha --bail",
68
68
  "test:cover": "c8 --include=src --reporter=lcov --reporter=text npm test"
69
69
  },
70
- "version": "4.4.0"
70
+ "version": "4.4.2"
71
71
  }
package/src/index.mjs CHANGED
@@ -32,9 +32,15 @@ const {
32
32
  } = http2.constants;
33
33
 
34
34
  export default function rekwest(url, options) {
35
- return transfer(validation(normalize(url, options)));
35
+ return transfer(validation(normalize(url, options)), rekwest);
36
36
  }
37
37
 
38
+ Reflect.defineProperty(rekwest, 'defaults', {
39
+ enumerable: true,
40
+ get() { return defaults.stash; },
41
+ set(value) { defaults.stash = merge(defaults.stash, value); },
42
+ });
43
+
38
44
  Reflect.defineProperty(rekwest, 'extend', {
39
45
  enumerable: true,
40
46
  value(options) {
@@ -76,9 +82,3 @@ Reflect.defineProperty(rekwest, 'stream', {
76
82
  return req;
77
83
  },
78
84
  });
79
-
80
- Reflect.defineProperty(rekwest, 'defaults', {
81
- enumerable: true,
82
- get() { return defaults.stash; },
83
- set(value) { defaults.stash = merge(defaults.stash, value); },
84
- });
@@ -78,7 +78,7 @@ export const postflight = (req, res, options, { reject, resolve }) => {
78
78
  }
79
79
 
80
80
  if (!sameOrigin(location, url)) {
81
- Reflect.set(options, 'h2', false);
81
+ options.h2 = false;
82
82
  if ([
83
83
  requestCredentials.omit,
84
84
  requestCredentials.sameOrigin,
@@ -92,14 +92,10 @@ export const postflight = (req, res, options, { reject, resolve }) => {
92
92
  }
93
93
  }
94
94
 
95
- options.url = location;
96
-
97
95
  if (statusCode !== HTTP_STATUS_SEE_OTHER && options.body?.pipe?.constructor === Function) {
98
96
  return res.emit('error', new RequestError(`Unable to ${ redirect } redirect with streamable body.`));
99
97
  }
100
98
 
101
- options.follow--;
102
-
103
99
  if (([
104
100
  HTTP_STATUS_MOVED_PERMANENTLY,
105
101
  HTTP_STATUS_FOUND,
@@ -113,7 +109,9 @@ export const postflight = (req, res, options, { reject, resolve }) => {
113
109
  options.method = HTTP2_METHOD_GET;
114
110
  }
115
111
 
116
- Reflect.set(options, 'redirected', true);
112
+ options.follow--;
113
+ options.redirected = true;
114
+ options.url = location;
117
115
 
118
116
  if (statusCode === HTTP_STATUS_MOVED_PERMANENTLY && res.headers[HTTP2_HEADER_RETRY_AFTER]) {
119
117
  let interval = res.headers[HTTP2_HEADER_RETRY_AFTER];
package/src/utils.mjs CHANGED
@@ -10,13 +10,13 @@ import { setTimeout as setTimeoutPromise } from 'node:timers/promises';
10
10
  import { types } from 'node:util';
11
11
  import zlib from 'node:zlib';
12
12
  import { ackn } from './ackn.mjs';
13
+ import defaults from './defaults.mjs';
13
14
  import {
14
15
  RequestError,
15
16
  TimeoutError,
16
17
  } from './errors.mjs';
17
18
  import { File } from './file.mjs';
18
19
  import { FormData } from './formdata.mjs';
19
- import rekwest from './index.mjs';
20
20
  import {
21
21
  APPLICATION_FORM_URLENCODED,
22
22
  APPLICATION_JSON,
@@ -173,7 +173,7 @@ export const merge = (target = {}, ...rest) => {
173
173
 
174
174
  export const normalize = (url, options = {}) => {
175
175
  if (!options.redirected) {
176
- options = merge(rekwest.defaults, options);
176
+ options = merge(defaults.stash, options);
177
177
  }
178
178
 
179
179
  if (options.trimTrailingSlashes) {
@@ -197,7 +197,7 @@ export async function* tap(value) {
197
197
  }
198
198
  }
199
199
 
200
- export const transfer = async (options) => {
200
+ export const transfer = async (options, overact) => {
201
201
  const { digest, redirected, thenable, url } = options;
202
202
 
203
203
  if (options.follow === 0) {
@@ -278,7 +278,7 @@ export const transfer = async (options) => {
278
278
  retry.attempts--;
279
279
  retry.interval = interval;
280
280
 
281
- return setTimeoutPromise(interval).then(() => rekwest(url, options));
281
+ return setTimeoutPromise(interval).then(() => overact(url, options));
282
282
  }
283
283
 
284
284
  if (digest && !redirected && ex.body) {