@jnode/request 2.1.2 → 2.1.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/index.js +20 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jnode/request",
3
- "version": "2.1.2",
3
+ "version": "2.1.4",
4
4
  "description": "Simple HTTP(s) requesting package for Node.js.",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/index.js CHANGED
@@ -49,7 +49,10 @@ function request(method = 'GET', url = '', body, headers = {}, options = {}) {
49
49
 
50
50
  // set Content-Disposition header
51
51
  if (!req.getHeader('content-disposition') && (part.name || part.filename || part.disposition)) {
52
- partHeaders['Content-Disposition'] = (part.disposition || 'form-data') + (part.name ? `; name="${part.name}"` : '') + (part.filename ? `; filename="${part.filename}"` : '');
52
+ part.filename = part.filename ? encodeURIComponent(part.filename) : part.filename;
53
+ partHeaders['Content-Disposition'] = (part.disposition || 'form-data') +
54
+ (part.name ? `; name="${part.name}"` : '') +
55
+ (part.filename ? `; filename="${part.filename}"; filename*=UTF-8''${part.filename}` : '');
53
56
  }
54
57
 
55
58
  // write headers and body
@@ -223,6 +226,7 @@ class EventReceiver extends EventEmitter {
223
226
  while (resolvers.length > 0) {
224
227
  resolvers.shift()({ done: true });
225
228
  }
229
+ this.off('event', onEvent);
226
230
  };
227
231
  this.on('close', onClose);
228
232
 
@@ -243,8 +247,23 @@ class EventReceiver extends EventEmitter {
243
247
  while (resolvers.length > 0) {
244
248
  resolvers.shift()({ done: true });
245
249
  }
250
+
251
+ this.off('event', onEvent);
252
+ this.off('close', onClose);
253
+ this.rl.close();
254
+
255
+ return Promise.resolve({ value: undefined, done: true });
256
+ },
257
+ throw: (err) => {
258
+ done = true;
259
+ while (resolvers.length > 0) {
260
+ resolvers.shift()({ done: true });
261
+ }
246
262
  this.off('event', onEvent);
247
263
  this.off('close', onClose);
264
+ this.rl.close();
265
+
266
+ return Promise.reject(err);
248
267
  },
249
268
  [Symbol.asyncIterator]() { return this; }
250
269
  }