hof 19.13.4-betav7 → 19.13.4-betav8

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/model/index.js +30 -66
  2. package/package.json +1 -1
package/model/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  const _ = require('lodash');
5
+ const requestJS = require('request');
5
6
  const url = require('url');
6
7
  const EventEmitter = require('events').EventEmitter;
7
8
 
@@ -16,58 +17,36 @@ function timeDiff(from, to, d) {
16
17
  return +ms.toFixed(digits);
17
18
  }
18
19
 
19
- /*
20
- async function fetchRequest(settings, callback) {
21
- //Fetch doesn't like undefined headers
22
- settings.headers = settings.headers || [];
23
- var response = await fetch(settings.uri, settings);
24
- var responseText = await response.text();
25
- var responseObj = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
26
- if(response.ok) {
27
- callback(null,responseObj);
20
+ function fetchRequest(settings, callback) {
21
+ if(!!settings.isUpload ||
22
+ (settings.formData && settings.formData.document && settings.formData.document.options && settings.formData.document.options.filename)
23
+ ) {
24
+ //We're currently continuing to use requestJS for uploads as the Node Fetch API doesn't work with Multer
25
+ //TODO: Remove this once Fetch is compatible with Multer
26
+ //We can either pass in the isUpload flag or we'll assume it's an upload since we've passed a document with options and a filename
27
+ requestJS(settings, (err, response) => {
28
+ callback(err,response);
29
+ });
28
30
  } else {
29
- callback({ status: response.status, code: response.status, message: response.statusText },responseObj);
31
+ //Fetch doesn't like undefined headers
32
+ settings.headers = settings.headers || [];
33
+ settings.uri = settings.uri || settings.url || url.format(settings);
34
+ let response;
35
+ console.log(settings);
36
+ fetch(settings.uri, settings).then((_response) => {
37
+ response = _response;
38
+ })
39
+ .then(() => response.text())
40
+ .then((responseText) => {
41
+ var result = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
42
+ if(response.ok) {
43
+ callback(null,result);
44
+ } else {
45
+ callback({ status: response.status, code: response.status, message: response.statusText }, result);
46
+ }
47
+ });
30
48
  }
31
49
  }
32
- */
33
-
34
- /*
35
- function fetchRequest(settings, callback) {
36
- //Fetch doesn't like undefined headers
37
- settings.headers = settings.headers || [];
38
- settings.uri = settings.uri || settings.url || url.format(settings);
39
- fetch(settings.uri, settings).then(async function(response) {
40
- var responseText = await response.text();
41
- var responseObj = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
42
- if(response.ok) {
43
- callback(null,responseObj);
44
- } else {
45
- callback({ status: response.status, code: response.status, message: response.statusText },responseObj);
46
- //callback({ status: response.status, code: response.status, message: response.statusText },responseObj);
47
- }
48
- //return { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
49
- })
50
- */
51
-
52
- function fetchRequest(settings, callback) {
53
- //Fetch doesn't like undefined headers
54
- settings.headers = settings.headers || [];
55
- settings.uri = settings.uri || settings.url || url.format(settings);
56
- let response;
57
- console.log(settings);
58
- fetch(settings.uri, settings).then((gottenResponse) => {
59
- response = gottenResponse;
60
- })
61
- .then(() => response.text())
62
- .then((responseText) => {
63
- var result = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
64
- if(response.ok) {
65
- callback(null,result);
66
- } else {
67
- callback({ status: response.status, code: response.status, message: response.statusText }, result);
68
- }
69
- });
70
- }
71
50
 
72
51
  const urlKeys = Object.keys(url.parse(''));
73
52
 
@@ -139,21 +118,6 @@ module.exports = class Model extends EventEmitter {
139
118
  }
140
119
 
141
120
  request(originalSettings, body, callback) {
142
- /*
143
- async function fetchRequest(settings, callback) {
144
- //Fetch doesn't like undefined headers
145
- settings.headers = settings.headers || [];
146
- var response = await fetch(settings.uri, settings);
147
- var responseText = await response.text();
148
- var responseObj = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
149
- if(response.ok) {
150
- callback(null,responseObj);
151
- } else {
152
- callback({ status: response.status, code: response.status, message: response.statusText },responseObj);
153
- }
154
- }
155
- */
156
-
157
121
  if (typeof body === 'function' && arguments.length === 2) {
158
122
  callback = body;
159
123
  body = undefined;
@@ -206,11 +170,11 @@ module.exports = class Model extends EventEmitter {
206
170
 
207
171
  fetchRequest(settings, (err, response) => {
208
172
  if (err) {
209
- if (err.status === 408) {
173
+ if (err.status === 408 || err.code === 'ETIMEDOUT' || err.code === 'ESOCKETTIMEDOUT') {
210
174
  err.message = 'Connection timed out';
211
175
  err.status = 504;
212
176
  }
213
- err.status = err.status || (response && response.status) || 503;
177
+ err.status = err.status || err.statusCode || (response && response.status) || 503;
214
178
  return _callback(err, null, err.status);
215
179
  }
216
180
  return this.handleResponse(response, (error, data, status) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hof",
3
3
  "description": "A bootstrap for HOF projects",
4
- "version": "19.13.4-betav7",
4
+ "version": "19.13.4-betav8",
5
5
  "license": "MIT",
6
6
  "main": "index.js",
7
7
  "author": "HomeOffice",