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 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 request methods.
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 `body` and `status` arguments. If the `accept` property of the main `headers` argument is set to `application/json` then the callback function's `body` argument can be assumed to be JSON, or `null` if the request body cannot be parsed as such. The `status` argument will be the response status code, for example `200` for a successful `OK` response.
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, status) => {
79
- if (status === 200) {
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 `body` 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 `body` argument is assumed to be a plain old JavaScript object and is stringified as JSON. In these cases the `content-length` header will also be set if one is not present already.
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, status) => {
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 `body` argument:
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
- json = {
121
+ json = {
122
122
  ...
123
123
  };
124
124
 
125
- request(host, uri, query, method, headers, json, (json, status) => {
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 `bodyFromResponse()` function that will do this for simple cases when the body of the response is Unicode:
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 { statusCode } = response;
236
+ const { status } = response;
237
237
 
238
238
  // Check the status code
239
239
 
240
- bodyFromResponse(response, (body) => {
241
- console.log(body)
240
+ contentFromResponse(response, (content) => {
241
+ console.log(content)
242
242
  });
243
243
  });
244
244
 
245
- function bodyFromResponse(response, callback) {
246
- let body = "";
245
+ function contentFromResponse(response, callback) {
246
+ let content = "";
247
247
 
248
248
  response.on("data", (data) => {
249
- body += data;
249
+ content += data;
250
250
  });
251
251
 
252
252
  response.on("end", () => {
253
- callback(body);
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.CONTENT_LENGTH = exports.CONTENT_TYPE = exports.EMPTY_STRING = exports.ACCEPT = exports.CTRL_C = exports.ERROR = exports.UTF8 = void 0;
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBVVEY4ID0gXCJ1dGY4XCI7XG5leHBvcnQgY29uc3QgRVJST1IgPSBcImVycm9yXCI7XG5leHBvcnQgY29uc3QgQ1RSTF9DID0gXCJeQ1wiO1xuZXhwb3J0IGNvbnN0IEFDQ0VQVCA9IFwiYWNjZXB0XCI7XG5leHBvcnQgY29uc3QgRU1QVFlfU1RSSU5HID0gXCJcIjtcbmV4cG9ydCBjb25zdCBDT05URU5UX1RZUEUgPSBcImNvbnRlbnQtdHlwZVwiO1xuZXhwb3J0IGNvbnN0IENPTlRFTlRfTEVOR1RIID0gJ2NvbnRlbnQtbGVuZ3RoJztcbiJdLCJuYW1lcyI6WyJVVEY4IiwiRVJST1IiLCJDVFJMX0MiLCJBQ0NFUFQiLCJFTVBUWV9TVFJJTkciLCJDT05URU5UX1RZUEUiLCJDT05URU5UX0xFTkdUSCJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFTCxHQUFLLENBQUNBLElBQUksR0FBRyxDQUFNO1FBQWJBLElBQUksR0FBSkEsSUFBSTtBQUNWLEdBQUssQ0FBQ0MsS0FBSyxHQUFHLENBQU87UUFBZkEsS0FBSyxHQUFMQSxLQUFLO0FBQ1gsR0FBSyxDQUFDQyxNQUFNLEdBQUcsQ0FBSTtRQUFiQSxNQUFNLEdBQU5BLE1BQU07QUFDWixHQUFLLENBQUNDLE1BQU0sR0FBRyxDQUFRO1FBQWpCQSxNQUFNLEdBQU5BLE1BQU07QUFDWixHQUFLLENBQUNDLFlBQVksR0FBRyxDQUFFO1FBQWpCQSxZQUFZLEdBQVpBLFlBQVk7QUFDbEIsR0FBSyxDQUFDQyxZQUFZLEdBQUcsQ0FBYztRQUE3QkEsWUFBWSxHQUFaQSxZQUFZO0FBQ2xCLEdBQUssQ0FBQ0MsY0FBYyxHQUFHLENBQWdCO1FBQWpDQSxjQUFjLEdBQWRBLGNBQWMifQ==
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBVVEY4ID0gXCJ1dGY4XCI7XG5leHBvcnQgY29uc3QgRVJST1IgPSBcImVycm9yXCI7XG5leHBvcnQgY29uc3QgQ1RSTF9DID0gXCJeQ1wiO1xuZXhwb3J0IGNvbnN0IEFDQ0VQVCA9IFwiYWNjZXB0XCI7XG5leHBvcnQgY29uc3QgRU1QVFlfU1RSSU5HID0gXCJcIjtcbmV4cG9ydCBjb25zdCBDT05URU5UX1RZUEUgPSBcImNvbnRlbnQtdHlwZVwiO1xuIl0sIm5hbWVzIjpbIlVURjgiLCJFUlJPUiIsIkNUUkxfQyIsIkFDQ0VQVCIsIkVNUFRZX1NUUklORyIsIkNPTlRFTlRfVFlQRSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFTCxHQUFLLENBQUNBLElBQUksR0FBRyxDQUFNO1FBQWJBLElBQUksR0FBSkEsSUFBSTtBQUNWLEdBQUssQ0FBQ0MsS0FBSyxHQUFHLENBQU87UUFBZkEsS0FBSyxHQUFMQSxLQUFLO0FBQ1gsR0FBSyxDQUFDQyxNQUFNLEdBQUcsQ0FBSTtRQUFiQSxNQUFNLEdBQU5BLE1BQU07QUFDWixHQUFLLENBQUNDLE1BQU0sR0FBRyxDQUFRO1FBQWpCQSxNQUFNLEdBQU5BLE1BQU07QUFDWixHQUFLLENBQUNDLFlBQVksR0FBRyxDQUFFO1FBQWpCQSxZQUFZLEdBQVpBLFlBQVk7QUFDbEIsR0FBSyxDQUFDQyxZQUFZLEdBQUcsQ0FBYztRQUE3QkEsWUFBWSxHQUFaQSxZQUFZIn0=
@@ -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 body = null, method = _methods.GET_METHOD, accept = _contentTypes.APPLICATION_JSON_CONTENT_TYPE;
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, body, callback);
21
+ request(host, uri, query, method, headers, content, callback);
22
22
  }
23
- function post(host, uri, query, headers, body, callback) {
23
+ function post(host, uri, query, headers, content, callback) {
24
24
  if (callback === undefined) {
25
- callback = body;
26
- body = headers;
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, body, callback);
33
+ request(host, uri, query, method, headers, content, callback);
34
34
  }
35
- function request(host, uri, query, method, headers, body1, callback) {
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 = body1, jsonString = JSON.stringify(json), content = jsonString, contentLength = content.length;
39
- underwriteContentLength(headers, contentLength);
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 body = responseText;
44
+ var content = responseText;
46
45
  if (accept === _contentTypes.APPLICATION_JSON_CONTENT_TYPE) {
47
46
  try {
48
- var jsonString = body, json = JSON.parse(jsonString);
49
- body = json; ///
47
+ var jsonString = content, json = JSON.parse(jsonString);
48
+ content = json; ///
50
49
  } catch (error) {
51
- body = null;
50
+ content = null;
52
51
  }
53
- callback(body, status);
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
- body1 !== null ? xmlHttpRequest.send(body1) : xmlHttpRequest.send();
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYWpheC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgR0VUX01FVEhPRCwgUE9TVF9NRVRIT0QgfSBmcm9tIFwiLi4vbWV0aG9kc1wiO1xuaW1wb3J0IHsgQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUgfSBmcm9tIFwiLi4vY29udGVudFR5cGVzXCI7XG5pbXBvcnQgeyB1bmRlcndyaXRlLCB1cmxGcm9tSG9zdFVSSUFuZFF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9odHRwXCI7XG5pbXBvcnQgeyBBQ0NFUFQsIENPTlRFTlRfVFlQRSwgQ09OVEVOVF9MRU5HVEggfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQoaG9zdCwgdXJpLCBxdWVyeSwgaGVhZGVycywgY2FsbGJhY2spIHtcbiAgaWYgKGNhbGxiYWNrID09PSB1bmRlZmluZWQpIHtcbiAgICBjYWxsYmFjayA9IGhlYWRlcnM7IC8vL1xuICAgIGhlYWRlcnMgPSB7fTtcbiAgfVxuXG4gIGNvbnN0IGJvZHkgPSBudWxsLFxuICAgICAgICBtZXRob2QgPSBHRVRfTUVUSE9ELFxuICAgICAgICBhY2NlcHQgPSBBUFBMSUNBVElPTl9KU09OX0NPTlRFTlRfVFlQRTtcblxuICB1bmRlcndyaXRlQWNjZXB0KGhlYWRlcnMsIGFjY2VwdCk7XG5cbiAgcmVxdWVzdChob3N0LCB1cmksIHF1ZXJ5LCBtZXRob2QsIGhlYWRlcnMsIGJvZHksIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc3QoaG9zdCwgdXJpLCBxdWVyeSwgaGVhZGVycywgYm9keSwgY2FsbGJhY2spIHtcbiAgaWYgKGNhbGxiYWNrID09PSB1bmRlZmluZWQpIHtcbiAgICBjYWxsYmFjayA9IGJvZHk7XG4gICAgYm9keSA9IGhlYWRlcnM7XG4gICAgaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kID0gUE9TVF9NRVRIT0QsXG4gICAgICAgIGFjY2VwdCA9IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFLFxuICAgICAgICBjb250ZW50VHlwZSA9IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFO1xuXG4gIHVuZGVyd3JpdGVBY2NlcHQoaGVhZGVycywgYWNjZXB0KTtcblxuICB1bmRlcndyaXRlQ29udGVudFR5cGUoaGVhZGVycywgY29udGVudFR5cGUpO1xuXG4gIHJlcXVlc3QoaG9zdCwgdXJpLCBxdWVyeSwgbWV0aG9kLCBoZWFkZXJzLCBib2R5LCBjYWxsYmFjayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgYm9keSwgY2FsbGJhY2spIHtcbiAgY29uc3QgdXJsID0gdXJsRnJvbUhvc3RVUklBbmRRdWVyeShob3N0LCB1cmksIHF1ZXJ5KSxcbiAgICAgICAgYWNjZXB0ID0gaGVhZGVyc1tBQ0NFUFRdIHx8IG51bGwsXG4gICAgICAgIGNvbnRlbnRUeXBlID0gaGVhZGVyc1tDT05URU5UX1RZUEVdIHx8IG51bGwsXG4gICAgICAgIHhtbEh0dHBSZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG5cbiAgaWYgKGNvbnRlbnRUeXBlID09PSBBUFBMSUNBVElPTl9KU09OX0NPTlRFTlRfVFlQRSkge1xuICAgIGNvbnN0IGpzb24gPSBib2R5LCAgLy8vXG4gICAgICAgICAganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGpzb24pLFxuICAgICAgICAgIGNvbnRlbnQgPSBqc29uU3RyaW5nLCAvLy9cbiAgICAgICAgICBjb250ZW50TGVuZ3RoID0gY29udGVudC5sZW5ndGg7XG5cbiAgICB1bmRlcndyaXRlQ29udGVudExlbmd0aChoZWFkZXJzLCBjb250ZW50TGVuZ3RoKTtcblxuICAgIGJvZHkgPSBqc29uU3RyaW5nOyAgLy8vXG4gIH1cblxuICB4bWxIdHRwUmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgY29uc3QgeyByZWFkeVN0YXRlLCBzdGF0dXMsIHJlc3BvbnNlVGV4dCB9ID0geG1sSHR0cFJlcXVlc3Q7XG5cbiAgICBpZiAocmVhZHlTdGF0ZSA9PSA0KSB7XG4gICAgICBsZXQgYm9keSA9IHJlc3BvbnNlVGV4dDtcblxuICAgICAgaWYgKGFjY2VwdCA9PT0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gYm9keSwgIC8vL1xuICAgICAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGpzb25TdHJpbmcpO1xuXG4gICAgICAgICAgYm9keSA9IGpzb247ICAvLy9cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBib2R5ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbGxiYWNrKGJvZHksIHN0YXR1cyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHhtbEh0dHBSZXF1ZXN0Lm9wZW4obWV0aG9kLCB1cmwpO1xuXG4gIGlmIChhY2NlcHQgIT09IG51bGwpIHtcbiAgICB4bWxIdHRwUmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKEFDQ0VQVCwgYWNjZXB0KTtcbiAgfVxuXG4gIGlmIChjb250ZW50VHlwZSAhPT0gbnVsbCkge1xuICAgIHhtbEh0dHBSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoQ09OVEVOVF9UWVBFLCBjb250ZW50VHlwZSk7XG4gIH1cblxuICAoYm9keSAhPT0gbnVsbCkgP1xuICAgIHhtbEh0dHBSZXF1ZXN0LnNlbmQoYm9keSkgOlxuICAgICAgeG1sSHR0cFJlcXVlc3Quc2VuZCgpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGdldCxcbiAgcG9zdCxcbiAgcmVxdWVzdFxufVxuXG5mdW5jdGlvbiB1bmRlcndyaXRlQWNjZXB0KGhlYWRlcnMsIGFjY2VwdCkge1xuICBjb25zdCBuYW1lID0gQUNDRVBULCAgLy8vXG4gICAgICAgIHZhbHVlID0gYWNjZXB0OyAvLy9cblxuICB1bmRlcndyaXRlKGhlYWRlcnMsIG5hbWUsIHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gdW5kZXJ3cml0ZUNvbnRlbnRUeXBlKGhlYWRlcnMsIGNvbnRlbnRUWXBlKSB7XG4gIGNvbnN0IG5hbWUgPSBDT05URU5UX1RZUEUsICAvLy9cbiAgICAgICAgdmFsdWUgPSBjb250ZW50VFlwZTsgLy8vXG5cbiAgdW5kZXJ3cml0ZShoZWFkZXJzLCBuYW1lLCB2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHVuZGVyd3JpdGVDb250ZW50TGVuZ3RoKGhlYWRlcnMsIGNvbnRlbnRMZW5ndGgpIHtcbiAgY29uc3QgbmFtZSA9IENPTlRFTlRfTEVOR1RILCAgLy8vXG4gICAgICAgIHZhbHVlID0gY29udGVudExlbmd0aDsgLy8vXG5cbiAgdW5kZXJ3cml0ZShoZWFkZXJzLCBuYW1lLCB2YWx1ZSk7XG59XG4iXSwibmFtZXMiOlsiZ2V0IiwicG9zdCIsInJlcXVlc3QiLCJob3N0IiwidXJpIiwicXVlcnkiLCJoZWFkZXJzIiwiY2FsbGJhY2siLCJ1bmRlZmluZWQiLCJib2R5IiwibWV0aG9kIiwiYWNjZXB0IiwidW5kZXJ3cml0ZUFjY2VwdCIsImNvbnRlbnRUeXBlIiwidW5kZXJ3cml0ZUNvbnRlbnRUeXBlIiwidXJsIiwieG1sSHR0cFJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdCIsImpzb24iLCJqc29uU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbnRlbnQiLCJjb250ZW50TGVuZ3RoIiwibGVuZ3RoIiwidW5kZXJ3cml0ZUNvbnRlbnRMZW5ndGgiLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJyZWFkeVN0YXRlIiwic3RhdHVzIiwicmVzcG9uc2VUZXh0IiwicGFyc2UiLCJlcnJvciIsIm9wZW4iLCJzZXRSZXF1ZXN0SGVhZGVyIiwic2VuZCIsIm5hbWUiLCJ2YWx1ZSIsImNvbnRlbnRUWXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7O1FB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
80
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYWpheC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQUNDRVBULCBDT05URU5UX1RZUEUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHRVRfTUVUSE9ELCBQT1NUX01FVEhPRCB9IGZyb20gXCIuLi9tZXRob2RzXCI7XG5pbXBvcnQgeyBBUFBMSUNBVElPTl9KU09OX0NPTlRFTlRfVFlQRSB9IGZyb20gXCIuLi9jb250ZW50VHlwZXNcIjtcbmltcG9ydCB7IHVuZGVyd3JpdGUsIHVybEZyb21Ib3N0VVJJQW5kUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2h0dHBcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gaGVhZGVyczsgLy8vXG4gICAgaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kID0gR0VUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnQgPSBudWxsO1xuXG4gIHVuZGVyd3JpdGVBY2NlcHQoaGVhZGVycywgYWNjZXB0KTtcblxuICByZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY29udGVudCwgY2FsbGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zdChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gY29udGVudDtcbiAgICBjb250ZW50ID0gaGVhZGVycztcbiAgICBoZWFkZXJzID0ge307XG4gIH1cblxuICBjb25zdCBtZXRob2QgPSBQT1NUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnRUeXBlID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEU7XG5cbiAgdW5kZXJ3cml0ZUFjY2VwdChoZWFkZXJzLCBhY2NlcHQpO1xuXG4gIHVuZGVyd3JpdGVDb250ZW50VHlwZShoZWFkZXJzLCBjb250ZW50VHlwZSk7XG5cbiAgcmVxdWVzdChob3N0LCB1cmksIHF1ZXJ5LCBtZXRob2QsIGhlYWRlcnMsIGNvbnRlbnQsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVlc3QoaG9zdCwgdXJpLCBxdWVyeSwgbWV0aG9kLCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBjb25zdCB1cmwgPSB1cmxGcm9tSG9zdFVSSUFuZFF1ZXJ5KGhvc3QsIHVyaSwgcXVlcnkpLFxuICAgICAgICBhY2NlcHQgPSBoZWFkZXJzW0FDQ0VQVF0gfHwgbnVsbCxcbiAgICAgICAgY29udGVudFR5cGUgPSBoZWFkZXJzW0NPTlRFTlRfVFlQRV0gfHwgbnVsbCxcbiAgICAgICAgeG1sSHR0cFJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICBpZiAoY29udGVudFR5cGUgPT09IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFKSB7XG4gICAgY29uc3QganNvbiA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG5cbiAgICBjb250ZW50ID0ganNvblN0cmluZzsgIC8vL1xuICB9XG5cbiAgeG1sSHR0cFJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgcmVhZHlTdGF0ZSwgc3RhdHVzLCByZXNwb25zZVRleHQgfSA9IHhtbEh0dHBSZXF1ZXN0LFxuICAgICAgICAgIHN0YXR1c0NvZGUgPSBzdGF0dXM7XG5cbiAgICBpZiAocmVhZHlTdGF0ZSA9PSA0KSB7XG4gICAgICBsZXQgY29udGVudCA9IHJlc3BvbnNlVGV4dDtcblxuICAgICAgaWYgKGFjY2VwdCA9PT0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gY29udGVudCwgIC8vL1xuICAgICAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGpzb25TdHJpbmcpO1xuXG4gICAgICAgICAgY29udGVudCA9IGpzb247ICAvLy9cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb250ZW50ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbGxiYWNrKGNvbnRlbnQsIHN0YXR1c0NvZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICB4bWxIdHRwUmVxdWVzdC5vcGVuKG1ldGhvZCwgdXJsKTtcblxuICBpZiAoYWNjZXB0ICE9PSBudWxsKSB7XG4gICAgeG1sSHR0cFJlcXVlc3Quc2V0UmVxdWVzdEhlYWRlcihBQ0NFUFQsIGFjY2VwdCk7XG4gIH1cblxuICBpZiAoY29udGVudFR5cGUgIT09IG51bGwpIHtcbiAgICB4bWxIdHRwUmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKENPTlRFTlRfVFlQRSwgY29udGVudFR5cGUpO1xuICB9XG5cbiAgKGNvbnRlbnQgIT09IG51bGwpID9cbiAgICB4bWxIdHRwUmVxdWVzdC5zZW5kKGNvbnRlbnQpIDpcbiAgICAgIHhtbEh0dHBSZXF1ZXN0LnNlbmQoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBnZXQsXG4gIHBvc3QsXG4gIHJlcXVlc3Rcbn1cblxuZnVuY3Rpb24gdW5kZXJ3cml0ZUFjY2VwdChoZWFkZXJzLCBhY2NlcHQpIHtcbiAgY29uc3QgbmFtZSA9IEFDQ0VQVCwgIC8vL1xuICAgICAgICB2YWx1ZSA9IGFjY2VwdDsgLy8vXG5cbiAgdW5kZXJ3cml0ZShoZWFkZXJzLCBuYW1lLCB2YWx1ZSk7XG59XG5cbmZ1bmN0aW9uIHVuZGVyd3JpdGVDb250ZW50VHlwZShoZWFkZXJzLCBjb250ZW50VFlwZSkge1xuICBjb25zdCBuYW1lID0gQ09OVEVOVF9UWVBFLCAgLy8vXG4gICAgICAgIHZhbHVlID0gY29udGVudFRZcGU7IC8vL1xuXG4gIHVuZGVyd3JpdGUoaGVhZGVycywgbmFtZSwgdmFsdWUpO1xufVxuIl0sIm5hbWVzIjpbImdldCIsInBvc3QiLCJyZXF1ZXN0IiwiaG9zdCIsInVyaSIsInF1ZXJ5IiwiaGVhZGVycyIsImNhbGxiYWNrIiwidW5kZWZpbmVkIiwibWV0aG9kIiwiYWNjZXB0IiwiY29udGVudCIsInVuZGVyd3JpdGVBY2NlcHQiLCJjb250ZW50VHlwZSIsInVuZGVyd3JpdGVDb250ZW50VHlwZSIsInVybCIsInhtbEh0dHBSZXF1ZXN0IiwiWE1MSHR0cFJlcXVlc3QiLCJqc29uIiwianNvblN0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCJyZWFkeVN0YXRlIiwic3RhdHVzIiwicmVzcG9uc2VUZXh0Iiwic3RhdHVzQ29kZSIsInBhcnNlIiwiZXJyb3IiLCJvcGVuIiwic2V0UmVxdWVzdEhlYWRlciIsInNlbmQiLCJuYW1lIiwidmFsdWUiLCJjb250ZW50VFlwZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7OztRQU9JQSxHQUFHLEdBQUhBLEdBQUc7UUFlSEMsSUFBSSxHQUFKQSxJQUFJO1FBa0JKQyxPQUFPLEdBQVBBLE9BQU87O0FBdENjLEdBQWMsQ0FBZCxVQUFjO0FBQ1gsR0FBWSxDQUFaLFFBQVk7QUFDTixHQUFpQixDQUFqQixhQUFpQjtBQUNaLEdBQW1CLENBQW5CLEtBQW1CO1NBRXRERixHQUFHLENBQUNHLElBQUksRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFLENBQUM7SUFDeEQsRUFBRSxFQUFFQSxRQUFRLEtBQUtDLFNBQVMsRUFBRSxDQUFDO1FBQzNCRCxRQUFRLEdBQUdE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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "necessary",
3
3
  "author": "James Smith",
4
- "version": "9.0.4",
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.10"
15
+ "watchful-cli": "^1.7.13"
16
16
  },
17
17
  "scripts": {
18
18
  "clean": "rm -rf ./lib",
package/src/constants.js CHANGED
@@ -6,4 +6,3 @@ export const CTRL_C = "^C";
6
6
  export const ACCEPT = "accept";
7
7
  export const EMPTY_STRING = "";
8
8
  export const CONTENT_TYPE = "content-type";
9
- export const CONTENT_LENGTH = 'content-length';
@@ -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 body = null,
15
- method = GET_METHOD,
16
- accept = APPLICATION_JSON_CONTENT_TYPE;
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, body, callback);
20
+ request(host, uri, query, method, headers, content, callback);
21
21
  }
22
22
 
23
- export function post(host, uri, query, headers, body, callback) {
23
+ export function post(host, uri, query, headers, content, callback) {
24
24
  if (callback === undefined) {
25
- callback = body;
26
- body = headers;
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, body, callback);
38
+ request(host, uri, query, method, headers, content, callback);
39
39
  }
40
40
 
41
- export function request(host, uri, query, method, headers, body, callback) {
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 = body, ///
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
- body = jsonString; ///
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 body = responseText;
59
+ let content = responseText;
63
60
 
64
61
  if (accept === APPLICATION_JSON_CONTENT_TYPE) {
65
62
  try {
66
- const jsonString = body, ///
63
+ const jsonString = content, ///
67
64
  json = JSON.parse(jsonString);
68
65
 
69
- body = json; ///
66
+ content = json; ///
70
67
  } catch (error) {
71
- body = null;
68
+ content = null;
72
69
  }
73
70
 
74
- callback(body, status);
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
- (body !== null) ?
90
- xmlHttpRequest.send(body) :
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
- }