hof 19.13.4-betav5 → 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 -65
  2. package/package.json +2 -2
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,57 +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
- fetch(settings.uri, settings).then((gottenResponse) => {
58
- response = gottenResponse;
59
- })
60
- .then(() => response.text())
61
- .then((responseText) => {
62
- var result = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
63
- if(response.ok) {
64
- callback(null,result);
65
- } else {
66
- callback({ status: response.status, code: response.status, message: response.statusText }, result);
67
- }
68
- });
69
- }
70
50
 
71
51
  const urlKeys = Object.keys(url.parse(''));
72
52
 
@@ -138,21 +118,6 @@ module.exports = class Model extends EventEmitter {
138
118
  }
139
119
 
140
120
  request(originalSettings, body, callback) {
141
- /*
142
- async function fetchRequest(settings, callback) {
143
- //Fetch doesn't like undefined headers
144
- settings.headers = settings.headers || [];
145
- var response = await fetch(settings.uri, settings);
146
- var responseText = await response.text();
147
- var responseObj = { status: response.status, statusCode: response.status, statusText: response.statusText, body: responseText };
148
- if(response.ok) {
149
- callback(null,responseObj);
150
- } else {
151
- callback({ status: response.status, code: response.status, message: response.statusText },responseObj);
152
- }
153
- }
154
- */
155
-
156
121
  if (typeof body === 'function' && arguments.length === 2) {
157
122
  callback = body;
158
123
  body = undefined;
@@ -205,11 +170,11 @@ module.exports = class Model extends EventEmitter {
205
170
 
206
171
  fetchRequest(settings, (err, response) => {
207
172
  if (err) {
208
- if (err.status === 408) {
173
+ if (err.status === 408 || err.code === 'ETIMEDOUT' || err.code === 'ESOCKETTIMEDOUT') {
209
174
  err.message = 'Connection timed out';
210
175
  err.status = 504;
211
176
  }
212
- err.status = err.status || (response && response.status) || 503;
177
+ err.status = err.status || err.statusCode || (response && response.status) || 503;
213
178
  return _callback(err, null, err.status);
214
179
  }
215
180
  return this.handleResponse(response, (error, data, status) => {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "hof",
3
3
  "description": "A bootstrap for HOF projects",
4
- "version": "19.13.4-betav5",
4
+ "version": "19.13.4-betav8",
5
5
  "license": "MIT",
6
6
  "main": "index.js",
7
7
  "author": "HomeOffice",
8
8
  "engines": {
9
- "node": ">=17.5.0",
9
+ "node": ">=17.6.0",
10
10
  "npm": ">=6.14.0"
11
11
  },
12
12
  "bin": {