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.
- package/model/index.js +30 -65
- 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
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
-
|
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-
|
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.
|
9
|
+
"node": ">=17.6.0",
|
10
10
|
"npm": ">=6.14.0"
|
11
11
|
},
|
12
12
|
"bin": {
|