necessary 9.0.4 → 9.1.3
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 +17 -17
- package/lib/constants.js +2 -4
- package/lib/utilities/ajax.js +18 -23
- package/package.json +2 -2
- package/src/constants.js +0 -1
- package/src/utilities/ajax.js +22 -32
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ The miscellaneous functions are a special case. They can be treated as above but
|
|
|
58
58
|
- `post()`
|
|
59
59
|
- `request()`
|
|
60
60
|
|
|
61
|
-
The first two `get()` and `post()` functions make use of the third `request()` function, which is more generic and can be used for arbitrary HTTP
|
|
61
|
+
The first two `get()` and `post()` functions make use of the third `request()` function, which is more generic and can be used for arbitrary HTTP requests.
|
|
62
62
|
|
|
63
63
|
* The `get()` function sends a `GET` request, taking `host`, `uri`, `query` and `callback` arguments, together with an optional `headers` argument after the `query` argument.
|
|
64
64
|
|
|
@@ -66,7 +66,7 @@ The `query` argument should be a plain old JavaScript object, the names and valu
|
|
|
66
66
|
|
|
67
67
|
The `headers` argument should also be a plain old JavaScript object. If it does not have an `accept` property then one wil be provided with the value `application/json`.
|
|
68
68
|
|
|
69
|
-
The `callback` argument is expected to be a function taking `
|
|
69
|
+
The `callback` argument is expected to be a function taking `contnet` and `statusCode` arguments. If the `accept` property of the main `headers` argument is set to `application/json` then the callback function's `content` argument can be assumed to be JSON, or `null` if the request body cannot be parsed as such. The `statusCode` argument will be the response status code, for example `200` for a successful `OK` response.
|
|
70
70
|
|
|
71
71
|
```
|
|
72
72
|
const host = "...",
|
|
@@ -75,8 +75,8 @@ const host = "...",
|
|
|
75
75
|
...
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
get(host, uri, query, (json,
|
|
79
|
-
if (
|
|
78
|
+
get(host, uri, query, (json, statusCode) => {
|
|
79
|
+
if (statusCode === 200) {
|
|
80
80
|
...
|
|
81
81
|
}
|
|
82
82
|
});
|
|
@@ -86,7 +86,7 @@ Note that the `uri` argument must include a leading forward slash `/` since the
|
|
|
86
86
|
|
|
87
87
|
* The `post()` function behaves almost identically to the `get()` function, with the following differences.
|
|
88
88
|
|
|
89
|
-
It sends a `POST` rather than a `GET` request. There is an additional `
|
|
89
|
+
It sends a `POST` rather than a `GET` request. There is an additional `content` argument that comes before the `callabck` argument and after the `headers` argument, which is again optional. If the `headers` argument does not have a `content-type` property then one will be provided with the value of `application/json`. If the `content-type` property of the `headers` argument is set to `application/json` then the `content` argument is assumed to be a plain old JavaScript object and is stringified as JSON.
|
|
90
90
|
|
|
91
91
|
```
|
|
92
92
|
const host = "...",
|
|
@@ -98,14 +98,14 @@ const host = "...",
|
|
|
98
98
|
...
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
-
post(host, uri, query, json, (json,
|
|
101
|
+
post(host, uri, query, json, (json, statusCode) => {
|
|
102
102
|
if (json !== null) {
|
|
103
103
|
...
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
-
* The `request()` function behaves similarly to the `post()` function but the `headers` argument is no longer optional and there is a `method` argument that comes before the `
|
|
108
|
+
* The `request()` function behaves similarly to the `post()` function but the `headers` argument is no longer optional and there is a `method` argument that comes before the `content` argument:
|
|
109
109
|
|
|
110
110
|
```
|
|
111
111
|
const host = "...",
|
|
@@ -118,11 +118,11 @@ const host = "...",
|
|
|
118
118
|
"accept": "application/json",
|
|
119
119
|
"content-type": "application/json"
|
|
120
120
|
},
|
|
121
|
-
|
|
121
|
+
json = {
|
|
122
122
|
...
|
|
123
123
|
};
|
|
124
124
|
|
|
125
|
-
request(host, uri, query, method, headers, json, (json,
|
|
125
|
+
request(host, uri, query, method, headers, json, (json, statusCode) => {
|
|
126
126
|
if (json !== null) {
|
|
127
127
|
...
|
|
128
128
|
}
|
|
@@ -227,30 +227,30 @@ Functions that leverage Node's [HTTP](https://nodejs.org/api/http.html) nad [HTT
|
|
|
227
227
|
|
|
228
228
|
* The `get()` function provides a means to make GET requests. It takes `host`, `uri` and `query` arguments, an optional `headers` argument and a `callback` argument. It returns an instance of Node's [ClientRequest](https://nodejs.org/api/http.html#http_class_http_clientrequest) class and the callback function should have an `error` argument, which will be `null` if the request is successful, and a `response` argument, which will be an instance of Node's [IncomingMessage](https://nodejs.org/api/http.html#class-httpincomingmessage) class.
|
|
229
229
|
|
|
230
|
-
As mentioned above, the `get()` method will not parse the response. In the following example there is a `
|
|
230
|
+
As mentioned above, the `get()` method will not parse the response. In the following example there is a `contentFromResponse()` function that will do this for simple cases when the body of the response is Unicode:
|
|
231
231
|
|
|
232
232
|
```
|
|
233
233
|
get(host, uri, query, (error, response) => {
|
|
234
234
|
// Check for an error
|
|
235
235
|
|
|
236
|
-
const {
|
|
236
|
+
const { status } = response;
|
|
237
237
|
|
|
238
238
|
// Check the status code
|
|
239
239
|
|
|
240
|
-
|
|
241
|
-
console.log(
|
|
240
|
+
contentFromResponse(response, (content) => {
|
|
241
|
+
console.log(content)
|
|
242
242
|
});
|
|
243
243
|
});
|
|
244
244
|
|
|
245
|
-
function
|
|
246
|
-
let
|
|
245
|
+
function contentFromResponse(response, callback) {
|
|
246
|
+
let content = "";
|
|
247
247
|
|
|
248
248
|
response.on("data", (data) => {
|
|
249
|
-
|
|
249
|
+
content += data;
|
|
250
250
|
});
|
|
251
251
|
|
|
252
252
|
response.on("end", () => {
|
|
253
|
-
callback(
|
|
253
|
+
callback(content);
|
|
254
254
|
});
|
|
255
255
|
}
|
|
256
256
|
```
|
package/lib/constants.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
exports.
|
|
5
|
+
exports.CONTENT_TYPE = exports.EMPTY_STRING = exports.ACCEPT = exports.CTRL_C = exports.ERROR = exports.UTF8 = void 0;
|
|
6
6
|
var UTF8 = "utf8";
|
|
7
7
|
exports.UTF8 = UTF8;
|
|
8
8
|
var ERROR = "error";
|
|
@@ -15,7 +15,5 @@ var EMPTY_STRING = "";
|
|
|
15
15
|
exports.EMPTY_STRING = EMPTY_STRING;
|
|
16
16
|
var CONTENT_TYPE = "content-type";
|
|
17
17
|
exports.CONTENT_TYPE = CONTENT_TYPE;
|
|
18
|
-
var CONTENT_LENGTH = 'content-length';
|
|
19
|
-
exports.CONTENT_LENGTH = CONTENT_LENGTH;
|
|
20
18
|
|
|
21
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBVVEY4ID0gXCJ1dGY4XCI7XG5leHBvcnQgY29uc3QgRVJST1IgPSBcImVycm9yXCI7XG5leHBvcnQgY29uc3QgQ1RSTF9DID0gXCJeQ1wiO1xuZXhwb3J0IGNvbnN0IEFDQ0VQVCA9IFwiYWNjZXB0XCI7XG5leHBvcnQgY29uc3QgRU1QVFlfU1RSSU5HID0gXCJcIjtcbmV4cG9ydCBjb25zdCBDT05URU5UX1RZUEUgPSBcImNvbnRlbnQtdHlwZVwiO1xuIl0sIm5hbWVzIjpbIlVURjgiLCJFUlJPUiIsIkNUUkxfQyIsIkFDQ0VQVCIsIkVNUFRZX1NUUklORyIsIkNPTlRFTlRfVFlQRSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFTCxHQUFLLENBQUNBLElBQUksR0FBRyxDQUFNO1FBQWJBLElBQUksR0FBSkEsSUFBSTtBQUNWLEdBQUssQ0FBQ0MsS0FBSyxHQUFHLENBQU87UUFBZkEsS0FBSyxHQUFMQSxLQUFLO0FBQ1gsR0FBSyxDQUFDQyxNQUFNLEdBQUcsQ0FBSTtRQUFiQSxNQUFNLEdBQU5BLE1BQU07QUFDWixHQUFLLENBQUNDLE1BQU0sR0FBRyxDQUFRO1FBQWpCQSxNQUFNLEdBQU5BLE1BQU07QUFDWixHQUFLLENBQUNDLFlBQVksR0FBRyxDQUFFO1FBQWpCQSxZQUFZLEdBQVpBLFlBQVk7QUFDbEIsR0FBSyxDQUFDQyxZQUFZLEdBQUcsQ0FBYztRQUE3QkEsWUFBWSxHQUFaQSxZQUFZIn0=
|
package/lib/utilities/ajax.js
CHANGED
|
@@ -6,51 +6,50 @@ exports.get = get;
|
|
|
6
6
|
exports.post = post;
|
|
7
7
|
exports.request = request;
|
|
8
8
|
exports.default = void 0;
|
|
9
|
+
var _constants = require("../constants");
|
|
9
10
|
var _methods = require("../methods");
|
|
10
11
|
var _contentTypes = require("../contentTypes");
|
|
11
12
|
var _http = require("../utilities/http");
|
|
12
|
-
var _constants = require("../constants");
|
|
13
13
|
function get(host, uri, query, headers, callback) {
|
|
14
14
|
if (callback === undefined) {
|
|
15
15
|
callback = headers; ///
|
|
16
16
|
headers = {
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
var
|
|
19
|
+
var method = _methods.GET_METHOD, accept = _contentTypes.APPLICATION_JSON_CONTENT_TYPE, content = null;
|
|
20
20
|
underwriteAccept(headers, accept);
|
|
21
|
-
request(host, uri, query, method, headers,
|
|
21
|
+
request(host, uri, query, method, headers, content, callback);
|
|
22
22
|
}
|
|
23
|
-
function post(host, uri, query, headers,
|
|
23
|
+
function post(host, uri, query, headers, content, callback) {
|
|
24
24
|
if (callback === undefined) {
|
|
25
|
-
callback =
|
|
26
|
-
|
|
25
|
+
callback = content;
|
|
26
|
+
content = headers;
|
|
27
27
|
headers = {
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
var method = _methods.POST_METHOD, accept = _contentTypes.APPLICATION_JSON_CONTENT_TYPE, contentType = _contentTypes.APPLICATION_JSON_CONTENT_TYPE;
|
|
31
31
|
underwriteAccept(headers, accept);
|
|
32
32
|
underwriteContentType(headers, contentType);
|
|
33
|
-
request(host, uri, query, method, headers,
|
|
33
|
+
request(host, uri, query, method, headers, content, callback);
|
|
34
34
|
}
|
|
35
|
-
function request(host, uri, query, method, headers,
|
|
35
|
+
function request(host, uri, query, method, headers, content1, callback) {
|
|
36
36
|
var url = (0, _http).urlFromHostURIAndQuery(host, uri, query), accept = headers[_constants.ACCEPT] || null, contentType = headers[_constants.CONTENT_TYPE] || null, xmlHttpRequest = new XMLHttpRequest();
|
|
37
37
|
if (contentType === _contentTypes.APPLICATION_JSON_CONTENT_TYPE) {
|
|
38
|
-
var json =
|
|
39
|
-
|
|
40
|
-
body1 = jsonString; ///
|
|
38
|
+
var json = content1, jsonString = JSON.stringify(json);
|
|
39
|
+
content1 = jsonString; ///
|
|
41
40
|
}
|
|
42
41
|
xmlHttpRequest.onreadystatechange = function() {
|
|
43
|
-
var readyState = xmlHttpRequest.readyState, status = xmlHttpRequest.status, responseText = xmlHttpRequest.responseText;
|
|
42
|
+
var readyState = xmlHttpRequest.readyState, status = xmlHttpRequest.status, responseText = xmlHttpRequest.responseText, statusCode = status;
|
|
44
43
|
if (readyState == 4) {
|
|
45
|
-
var
|
|
44
|
+
var content = responseText;
|
|
46
45
|
if (accept === _contentTypes.APPLICATION_JSON_CONTENT_TYPE) {
|
|
47
46
|
try {
|
|
48
|
-
var jsonString =
|
|
49
|
-
|
|
47
|
+
var jsonString = content, json = JSON.parse(jsonString);
|
|
48
|
+
content = json; ///
|
|
50
49
|
} catch (error) {
|
|
51
|
-
|
|
50
|
+
content = null;
|
|
52
51
|
}
|
|
53
|
-
callback(
|
|
52
|
+
callback(content, statusCode);
|
|
54
53
|
}
|
|
55
54
|
}
|
|
56
55
|
};
|
|
@@ -61,7 +60,7 @@ function request(host, uri, query, method, headers, body1, callback) {
|
|
|
61
60
|
if (contentType !== null) {
|
|
62
61
|
xmlHttpRequest.setRequestHeader(_constants.CONTENT_TYPE, contentType);
|
|
63
62
|
}
|
|
64
|
-
|
|
63
|
+
content1 !== null ? xmlHttpRequest.send(content1) : xmlHttpRequest.send();
|
|
65
64
|
}
|
|
66
65
|
var _default = {
|
|
67
66
|
get: get,
|
|
@@ -77,9 +76,5 @@ function underwriteContentType(headers, contentTYpe) {
|
|
|
77
76
|
var name = _constants.CONTENT_TYPE, value = contentTYpe; ///
|
|
78
77
|
(0, _http).underwrite(headers, name, value);
|
|
79
78
|
}
|
|
80
|
-
function underwriteContentLength(headers, contentLength) {
|
|
81
|
-
var name = _constants.CONTENT_LENGTH, value = contentLength; ///
|
|
82
|
-
(0, _http).underwrite(headers, name, value);
|
|
83
|
-
}
|
|
84
79
|
|
|
85
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYWpheC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQUNDRVBULCBDT05URU5UX1RZUEUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHRVRfTUVUSE9ELCBQT1NUX01FVEhPRCB9IGZyb20gXCIuLi9tZXRob2RzXCI7XG5pbXBvcnQgeyBBUFBMSUNBVElPTl9KU09OX0NPTlRFTlRfVFlQRSB9IGZyb20gXCIuLi9jb250ZW50VHlwZXNcIjtcbmltcG9ydCB7IHVuZGVyd3JpdGUsIHVybEZyb21Ib3N0VVJJQW5kUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2h0dHBcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gaGVhZGVyczsgLy8vXG4gICAgaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kID0gR0VUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnQgPSBudWxsO1xuXG4gIHVuZGVyd3JpdGVBY2NlcHQoaGVhZGVycywgYWNjZXB0KTtcblxuICByZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY29udGVudCwgY2FsbGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zdChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gY29udGVudDtcbiAgICBjb250ZW50ID0gaGVhZGVycztcbiAgICBoZWFkZXJzID0ge307XG4gIH1cblxuICBjb25zdCBtZXRob2QgPSBQT1NUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnRUeXBlID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEU7XG5cbiAgdW5kZXJ3cml0ZUFjY2VwdChoZWFkZXJzLCBhY2NlcHQpO1xuXG4gIHVuZGVyd3JpdGVDb250ZW50VHlwZShoZWFkZXJzLCBjb250ZW50VHlwZSk7XG5cbiAgcmVxdWVzdChob3N0LCB1cmksIHF1ZXJ5LCBtZXRob2QsIGhlYWRlcnMsIGNvbnRlbnQsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVlc3QoaG9zdCwgdXJpLCBxdWVyeSwgbWV0aG9kLCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBjb25zdCB1cmwgPSB1cmxGcm9tSG9zdFVSSUFuZFF1ZXJ5KGhvc3QsIHVyaSwgcXVlcnkpLFxuICAgICAgICBhY2NlcHQgPSBoZWFkZXJzW0FDQ0VQVF0gfHwgbnVsbCxcbiAgICAgICAgY29udGVudFR5cGUgPSBoZWFkZXJzW0NPTlRFTlRfVFlQRV0gfHwgbnVsbCxcbiAgICAgICAgeG1sSHR0cFJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICBpZiAoY29udGVudFR5cGUgPT09IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFKSB7XG4gICAgY29uc3QganNvbiA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG5cbiAgICBjb250ZW50ID0ganNvblN0cmluZzsgIC8vL1xuICB9XG5cbiAgeG1sSHR0cFJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgcmVhZHlTdGF0ZSwgc3RhdHVzLCByZXNwb25zZVRleHQgfSA9IHhtbEh0dHBSZXF1ZXN0LFxuICAgICAgICAgIHN0YXR1c0NvZGUgPSBzdGF0dXM7XG5cbiAgICBpZiAocmVhZHlTdGF0ZSA9PSA0KSB7XG4gICAgICBsZXQgY29udGVudCA9IHJlc3BvbnNlVGV4dDtcblxuICAgICAgaWYgKGFjY2VwdCA9PT0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gY29udGVudCwgIC8vL1xuICAgICAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGpzb25TdHJpbmcpO1xuXG4gICAgICAgICAgY29udGVudCA9IGpzb247ICAvLy9cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb250ZW50ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbGxiYWNrKGNvbnRlbnQsIHN0YXR1c0NvZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB4bWxIdHRwUmVxdWVzdC5vcGVuKG1ldGhvZCwgdXJsKTtcblxuICBpZiAoYWNjZXB0ICE9PSBudWxsKSB7XG4gICAgeG1sSHR0cFJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcihBQ0NFUFQsIGFjY2VwdCk7XG4gIH1cblxuICBpZiAoY29udGVudFR5cGUgIT09IG51bGwpIHtcbiAgICB4bWxIdHRwUmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKENPTlRFTlRfVFlQRSwgY29udGVudFR5cGUpO1xuICB9XG5cbiAgKGNvbnRlbnQgIT09IG51bGwpID9cbiAgICB4bWxIdHRwUmVxdWVzdC5zZW5kKGNvbnRlbnQpIDpcbiAgICAgIHhtbEh0dHBSZXF1ZXN0LnNlbmQoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBnZXQsXG4gIHBvc3QsXG4gIHJlcXVlc3Rcbn1cblxuZnVuY3Rpb24gdW5kZXJ3cml0ZUFjY2VwdChoZWFkZXJzLCBhY2NlcHQpIHtcbiAgY29uc3QgbmFtZSA9IEFDQ0VQVCwgIC8vL1xuICAgICAgICB2YWx1ZSA9IGFjY2VwdDsgLy8vXG5cbiAgdW5kZXJ3cml0ZShoZWFkZXJzLCBuYW1lLCB2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHVuZGVyd3JpdGVDb250ZW50VHlwZShoZWFkZXJzLCBjb250ZW50VFlwZSkge1xuICBjb25zdCBuYW1lID0gQ09OVEVOVF9UWVBFLCAgLy8vXG4gICAgICAgIHZhbHVlID0gY29udGVudFRZcGU7IC8vL1xuXG4gIHVuZGVyd3JpdGUoaGVhZGVycywgbmFtZSwgdmFsdWUpO1xufVxuIl0sIm5hbWVzIjpbImdldCIsInBvc3QiLCJyZXF1ZXN0IiwiaG9zdCIsInVyaSIsInF1ZXJ5IiwiaGVhZGVycyIsImNhbGxiYWNrIiwidW5kZWZpbmVkIiwibWV0aG9kIiwiYWNjZXB0IiwiY29udGVudCIsInVuZGVyd3JpdGVBY2NlcHQiLCJjb250ZW50VHlwZSIsInVuZGVyd3JpdGVDb250ZW50VHlwZSIsInVybCIsInhtbEh0dHBSZXF1ZXN0IiwiWE1MSHR0cFJlcXVlc3QiLCJqc29uIiwianNvblN0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJyZWFkeVN0YXRlIiwic3RhdHVzIiwicmVzcG9uc2VUZXh0Iiwic3RhdHVzQ29kZSIsInBhcnNlIiwiZXJyb3IiLCJvcGVuIiwic2V0UmVxdWVzdEhlYWRlciIsInNlbmQiLCJuYW1lIiwidmFsdWUiLCJjb250ZW50VFlwZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQU9JQSxHQUFHLEdBQUhBLEdBQUc7UUFlSEMsSUFBSSxHQUFKQSxJQUFJO1FBa0JKQyxPQUFPLEdBQVBBLE9BQU87O0FBdENjLEdBQWMsQ0FBZCxVQUFjO0FBQ1gsR0FBWSxDQUFaLFFBQVk7QUFDTixHQUFpQixDQUFqQixhQUFpQjtBQUNaLEdBQW1CLENBQW5CLEtBQW1CO1NBRXRERixHQUFHLENBQUNHLElBQUksRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFLENBQUM7SUFDeEQsRUFBRSxFQUFFQSxRQUFRLEtBQUtDLFNBQVMsRUFBRSxDQUFDO1FBQzNCRCxRQUFRLEdBQUdELE9BQU8sQ0FBRSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7UUFDdkJBLE9BQU8sR0FBRyxDQUFDO1FBQUEsQ0FBQztJQUNkLENBQUM7SUFFRCxHQUFLLENBQUNHLE1BQU0sR0FWMEIsUUFBWSxhQVc1Q0MsTUFBTSxHQVZnQyxhQUFpQixnQ0FXdkRDLE9BQU8sR0FBRyxJQUFJO0lBRXBCQyxnQkFBZ0IsQ0FBQ04sT0FBTyxFQUFFSSxNQUFNO0lBRWhDUixPQUFPLENBQUNDLElBQUksRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUVJLE1BQU0sRUFBRUgsT0FBTyxFQUFFSyxPQUFPLEVBQUVKLFFBQVE7QUFDOUQsQ0FBQztTQUVlTixJQUFJLENBQUNFLElBQUksRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUssT0FBTyxFQUFFSixRQUFRLEVBQUUsQ0FBQztJQUNsRSxFQUFFLEVBQUVBLFFBQVEsS0FBS0MsU0FBUyxFQUFFLENBQUM7UUFDM0JELFFBQVEsR0FBR0ksT0FBTztRQUNsQkEsT0FBTyxHQUFHTCxPQUFPO1FBQ2pCQSxPQUFPLEdBQUcsQ0FBQztRQUFBLENBQUM7SUFDZCxDQUFDO0lBRUQsR0FBSyxDQUFDRyxNQUFNLEdBMUIwQixRQUFZLGNBMkI1Q0MsTUFBTSxHQTFCZ0MsYUFBaUIsZ0NBMkJ2REcsV0FBVyxHQTNCMkIsYUFBaUI7SUE2QjdERCxnQkFBZ0IsQ0FBQ04sT0FBTyxFQUFFSSxNQUFNO0lBRWhDSSxxQkFBcUIsQ0FBQ1IsT0FBTyxFQUFFTyxXQUFXO0lBRTFDWCxPQUFPLENBQUNDLElBQUksRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUVJLE1BQU0sRUFBRUgsT0FBTyxFQUFFSyxPQUFPLEVBQUVKLFFBQVE7QUFDOUQsQ0FBQztTQUVlTCxPQUFPLENBQUNDLElBQUksRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUVJLE1BQU0sRUFBRUgsT0FBTyxFQUFFSyxRQUFPLEVBQUVKLFFBQVEsRUFBRSxDQUFDO0lBQzdFLEdBQUssQ0FBQ1EsR0FBRyxPQXBDd0MsS0FBbUIseUJBb0NqQ1osSUFBSSxFQUFFQyxHQUFHLEVBQUVDLEtBQUssR0FDN0NLLE1BQU0sR0FBR0osT0FBTyxDQXhDYSxVQUFjLFlBd0NmLElBQUksRUFDaENPLFdBQVcsR0FBR1AsT0FBTyxDQXpDUSxVQUFjLGtCQXlDSixJQUFJLEVBQzNDVSxjQUFjLEdBQUcsR0FBRyxDQUFDQyxjQUFjO0lBRXpDLEVBQUUsRUFBRUosV0FBVyxLQTFDNkIsYUFBaUIsZ0NBMENWLENBQUM7UUFDbEQsR0FBSyxDQUFDSyxJQUFJLEdBQUdQLFFBQU8sRUFDZFEsVUFBVSxHQUFHQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0gsSUFBSTtRQUV0Q1AsUUFBTyxHQUFHUSxVQUFVLENBQUcsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBQzVCLENBQUM7SUFFREgsY0FBYyxDQUFDTSxrQkFBa0IsR0FBRyxRQUN0QyxHQUQ0QyxDQUFDO1FBQ3pDLEdBQUssQ0FBR0MsVUFBVSxHQUEyQlAsY0FBYyxDQUFuRE8sVUFBVSxFQUFFQyxNQUFNLEdBQW1CUixjQUFjLENBQXZDUSxNQUFNLEVBQUVDLFlBQVksR0FBS1QsY0FBYyxDQUEvQlMsWUFBWSxFQUNsQ0MsVUFBVSxHQUFHRixNQUFNO1FBRXpCLEVBQUUsRUFBRUQsVUFBVSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQ1osT0FBTyxHQUFHYyxZQUFZO1lBRTFCLEVBQUUsRUFBRWYsTUFBTSxLQXhEOEIsYUFBaUIsZ0NBd0RYLENBQUM7Z0JBQzdDLEdBQUcsQ0FBQyxDQUFDO29CQUNILEdBQUssQ0FBQ1MsVUFBVSxHQUFHUixPQUFPLEVBQ3BCTyxJQUFJLEdBQUdFLElBQUksQ0FBQ08sS0FBSyxDQUFDUixVQUFVO29CQUVsQ1IsT0FBTyxHQUFHTyxJQUFJLENBQUcsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO2dCQUN0QixDQUFDLENBQUMsS0FBSyxFQUFFVSxLQUFLLEVBQUUsQ0FBQztvQkFDZmpCLE9BQU8sR0FBRyxJQUFJO2dCQUNoQixDQUFDO2dCQUVESixRQUFRLENBQUNJLE9BQU8sRUFBRWUsVUFBVTtZQUM5QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRFYsY0FBYyxDQUFDYSxJQUFJLENBQUNwQixNQUFNLEVBQUVNLEdBQUc7SUFFL0IsRUFBRSxFQUFFTCxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEJNLGNBQWMsQ0FBQ2MsZ0JBQWdCLENBNUVFLFVBQWMsU0E0RVBwQixNQUFNO0lBQ2hELENBQUM7SUFFRCxFQUFFLEVBQUVHLFdBQVcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUN6QkcsY0FBYyxDQUFDYyxnQkFBZ0IsQ0FoRkUsVUFBYyxlQWdGRGpCLFdBQVc7SUFDM0QsQ0FBQztJQUVBRixRQUFPLEtBQUssSUFBSSxHQUNmSyxjQUFjLENBQUNlLElBQUksQ0FBQ3BCLFFBQU8sSUFDekJLLGNBQWMsQ0FBQ2UsSUFBSTtBQUN6QixDQUFDO2VBRWMsQ0FBQztJQUNkL0IsR0FBRyxFQUFIQSxHQUFHO0lBQ0hDLElBQUksRUFBSkEsSUFBSTtJQUNKQyxPQUFPLEVBQVBBLE9BQU87QUFDVCxDQUFDOztTQUVRVSxnQkFBZ0IsQ0FBQ04sT0FBTyxFQUFFSSxNQUFNLEVBQUUsQ0FBQztJQUMxQyxHQUFLLENBQUNzQixJQUFJLEdBL0Z5QixVQUFjLFNBZ0czQ0MsS0FBSyxHQUFHdkIsTUFBTSxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQTdGd0IsS0FBbUIsYUErRnpESixPQUFPLEVBQUUwQixJQUFJLEVBQUVDLEtBQUs7QUFDakMsQ0FBQztTQUVRbkIscUJBQXFCLENBQUNSLE9BQU8sRUFBRTRCLFdBQVcsRUFBRSxDQUFDO0lBQ3BELEdBQUssQ0FBQ0YsSUFBSSxHQXRHeUIsVUFBYyxlQXVHM0NDLEtBQUssR0FBR0MsV0FBVyxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQXBHbUIsS0FBbUIsYUFzR3pENUIsT0FBTyxFQUFFMEIsSUFBSSxFQUFFQyxLQUFLO0FBQ2pDLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "necessary",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "9.
|
|
4
|
+
"version": "9.1.3",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/necessary",
|
|
7
7
|
"description": "A collection of utility functions.",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {},
|
|
13
13
|
"devDependencies": {
|
|
14
14
|
"@swc/core": "^1.2.52",
|
|
15
|
-
"watchful-cli": "^1.7.
|
|
15
|
+
"watchful-cli": "^1.7.13"
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
18
|
"clean": "rm -rf ./lib",
|
package/src/constants.js
CHANGED
package/src/utilities/ajax.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { ACCEPT, CONTENT_TYPE } from "../constants";
|
|
3
4
|
import { GET_METHOD, POST_METHOD } from "../methods";
|
|
4
5
|
import { APPLICATION_JSON_CONTENT_TYPE } from "../contentTypes";
|
|
5
6
|
import { underwrite, urlFromHostURIAndQuery } from "../utilities/http";
|
|
6
|
-
import { ACCEPT, CONTENT_TYPE, CONTENT_LENGTH } from "../constants";
|
|
7
7
|
|
|
8
8
|
export function get(host, uri, query, headers, callback) {
|
|
9
9
|
if (callback === undefined) {
|
|
@@ -11,19 +11,19 @@ export function get(host, uri, query, headers, callback) {
|
|
|
11
11
|
headers = {};
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const method = GET_METHOD,
|
|
15
|
+
accept = APPLICATION_JSON_CONTENT_TYPE,
|
|
16
|
+
content = null;
|
|
17
17
|
|
|
18
18
|
underwriteAccept(headers, accept);
|
|
19
19
|
|
|
20
|
-
request(host, uri, query, method, headers,
|
|
20
|
+
request(host, uri, query, method, headers, content, callback);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export function post(host, uri, query, headers,
|
|
23
|
+
export function post(host, uri, query, headers, content, callback) {
|
|
24
24
|
if (callback === undefined) {
|
|
25
|
-
callback =
|
|
26
|
-
|
|
25
|
+
callback = content;
|
|
26
|
+
content = headers;
|
|
27
27
|
headers = {};
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -35,43 +35,40 @@ export function post(host, uri, query, headers, body, callback) {
|
|
|
35
35
|
|
|
36
36
|
underwriteContentType(headers, contentType);
|
|
37
37
|
|
|
38
|
-
request(host, uri, query, method, headers,
|
|
38
|
+
request(host, uri, query, method, headers, content, callback);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export function request(host, uri, query, method, headers,
|
|
41
|
+
export function request(host, uri, query, method, headers, content, callback) {
|
|
42
42
|
const url = urlFromHostURIAndQuery(host, uri, query),
|
|
43
43
|
accept = headers[ACCEPT] || null,
|
|
44
44
|
contentType = headers[CONTENT_TYPE] || null,
|
|
45
45
|
xmlHttpRequest = new XMLHttpRequest();
|
|
46
46
|
|
|
47
47
|
if (contentType === APPLICATION_JSON_CONTENT_TYPE) {
|
|
48
|
-
const json =
|
|
49
|
-
jsonString = JSON.stringify(json)
|
|
50
|
-
content = jsonString, ///
|
|
51
|
-
contentLength = content.length;
|
|
52
|
-
|
|
53
|
-
underwriteContentLength(headers, contentLength);
|
|
48
|
+
const json = content, ///
|
|
49
|
+
jsonString = JSON.stringify(json);
|
|
54
50
|
|
|
55
|
-
|
|
51
|
+
content = jsonString; ///
|
|
56
52
|
}
|
|
57
53
|
|
|
58
54
|
xmlHttpRequest.onreadystatechange = () => {
|
|
59
|
-
const { readyState, status, responseText } = xmlHttpRequest
|
|
55
|
+
const { readyState, status, responseText } = xmlHttpRequest,
|
|
56
|
+
statusCode = status;
|
|
60
57
|
|
|
61
58
|
if (readyState == 4) {
|
|
62
|
-
let
|
|
59
|
+
let content = responseText;
|
|
63
60
|
|
|
64
61
|
if (accept === APPLICATION_JSON_CONTENT_TYPE) {
|
|
65
62
|
try {
|
|
66
|
-
const jsonString =
|
|
63
|
+
const jsonString = content, ///
|
|
67
64
|
json = JSON.parse(jsonString);
|
|
68
65
|
|
|
69
|
-
|
|
66
|
+
content = json; ///
|
|
70
67
|
} catch (error) {
|
|
71
|
-
|
|
68
|
+
content = null;
|
|
72
69
|
}
|
|
73
70
|
|
|
74
|
-
callback(
|
|
71
|
+
callback(content, statusCode);
|
|
75
72
|
}
|
|
76
73
|
}
|
|
77
74
|
};
|
|
@@ -86,8 +83,8 @@ export function request(host, uri, query, method, headers, body, callback) {
|
|
|
86
83
|
xmlHttpRequest.setRequestHeader(CONTENT_TYPE, contentType);
|
|
87
84
|
}
|
|
88
85
|
|
|
89
|
-
(
|
|
90
|
-
xmlHttpRequest.send(
|
|
86
|
+
(content !== null) ?
|
|
87
|
+
xmlHttpRequest.send(content) :
|
|
91
88
|
xmlHttpRequest.send();
|
|
92
89
|
}
|
|
93
90
|
|
|
@@ -110,10 +107,3 @@ function underwriteContentType(headers, contentTYpe) {
|
|
|
110
107
|
|
|
111
108
|
underwrite(headers, name, value);
|
|
112
109
|
}
|
|
113
|
-
|
|
114
|
-
function underwriteContentLength(headers, contentLength) {
|
|
115
|
-
const name = CONTENT_LENGTH, ///
|
|
116
|
-
value = contentLength; ///
|
|
117
|
-
|
|
118
|
-
underwrite(headers, name, value);
|
|
119
|
-
}
|