necessary 10.0.6 → 11.0.2
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 +10 -13
- package/lib/constants.js +10 -2
- package/lib/utilities/ajax.js +3 -5
- package/lib/utilities/configuration.js +108 -30
- package/lib/utilities/request.js +3 -5
- package/package.json +1 -1
- package/src/constants.js +4 -0
- package/src/utilities/configuration.js +149 -33
package/README.md
CHANGED
|
@@ -437,19 +437,17 @@ const stats = getStats("root/etc"); // returns stats for the 'root/etc' director
|
|
|
437
437
|
|
|
438
438
|
A single `rc()` function for runtime configuration.
|
|
439
439
|
|
|
440
|
-
* The `rc()` function parses a JSON runtime configuration file of a certain format and provides the information therein by assigning it to itself:
|
|
440
|
+
* The `rc()` function parses a JSON runtime configuration file of a certain format and provides the information therein by assigning it to itself. For example:
|
|
441
441
|
|
|
442
442
|
```
|
|
443
443
|
rc();
|
|
444
444
|
|
|
445
445
|
const { logOptions } = rc;
|
|
446
446
|
|
|
447
|
-
setLogOptions(logOptions);
|
|
448
|
-
// fileBaseName,
|
|
449
|
-
// directoryPath }
|
|
447
|
+
setLogOptions(logOptions);
|
|
450
448
|
```
|
|
451
449
|
|
|
452
|
-
|
|
450
|
+
The default name for the file is `.rc` and it must be present in the current working directory. It must have the following format:
|
|
453
451
|
|
|
454
452
|
```
|
|
455
453
|
{
|
|
@@ -466,17 +464,16 @@ By default it will parse a file called `.rc` in the current working directory. T
|
|
|
466
464
|
}
|
|
467
465
|
```
|
|
468
466
|
|
|
469
|
-
|
|
467
|
+
If an environment name is not passed as the `rc()` function's argument then it will try to find the environment name by the following means:
|
|
470
468
|
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
```
|
|
469
|
+
1. Checking the `process.argv` array for an `--environment` argument.
|
|
470
|
+
2. Checking the `proxess.env` object for an `ENVIRONMENT` environment variable.
|
|
474
471
|
|
|
475
|
-
|
|
472
|
+
If neither of these checks are successful then it will return the first element of the `enviromnents` array.
|
|
476
473
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
474
|
+
Note that it will not try to assign the `name` property of the chosen environment to itself, because functions already have a `name` property.
|
|
475
|
+
|
|
476
|
+
Before returning the JSON, it will search for uppercase strings. If such a string is the name of an environment variable, it will be replaced by the environment variable's value. This means that you can choose to keep sensitive information out of the runtime configuration and therefore, for instance, safely commit it to the repository.
|
|
480
477
|
|
|
481
478
|
You can change the base extension of the file that is parsed, that is the part of the extension between the leading dot and `rc`, by making use of the `setRCBaseExtension()` function:
|
|
482
479
|
|
package/lib/constants.js
CHANGED
|
@@ -2,18 +2,26 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
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.ENVIRONMENT = exports.BOOLEAN = exports.NUMBER = exports.ACCEPT = exports.STRING = exports.CTRL_C = exports.ERROR = exports.UTF8 = void 0;
|
|
6
6
|
var UTF8 = "utf8";
|
|
7
7
|
exports.UTF8 = UTF8;
|
|
8
8
|
var ERROR = "error";
|
|
9
9
|
exports.ERROR = ERROR;
|
|
10
10
|
var CTRL_C = "^C";
|
|
11
11
|
exports.CTRL_C = CTRL_C;
|
|
12
|
+
var STRING = "string";
|
|
13
|
+
exports.STRING = STRING;
|
|
12
14
|
var ACCEPT = "accept";
|
|
13
15
|
exports.ACCEPT = ACCEPT;
|
|
16
|
+
var NUMBER = "number";
|
|
17
|
+
exports.NUMBER = NUMBER;
|
|
18
|
+
var BOOLEAN = "boolean";
|
|
19
|
+
exports.BOOLEAN = BOOLEAN;
|
|
20
|
+
var ENVIRONMENT = "ENVIRONMENT";
|
|
21
|
+
exports.ENVIRONMENT = ENVIRONMENT;
|
|
14
22
|
var EMPTY_STRING = "";
|
|
15
23
|
exports.EMPTY_STRING = EMPTY_STRING;
|
|
16
24
|
var CONTENT_TYPE = "content-type";
|
|
17
25
|
exports.CONTENT_TYPE = CONTENT_TYPE;
|
|
18
26
|
|
|
19
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBVVEY4ID0gXCJ1dGY4XCI7XG5leHBvcnQgY29uc3QgRVJST1IgPSBcImVycm9yXCI7XG5leHBvcnQgY29uc3QgQ1RSTF9DID0gXCJeQ1wiO1xuZXhwb3J0IGNvbnN0IFNUUklORyA9IFwic3RyaW5nXCI7XG5leHBvcnQgY29uc3QgQUNDRVBUID0gXCJhY2NlcHRcIjtcbmV4cG9ydCBjb25zdCBOVU1CRVIgPSBcIm51bWJlclwiO1xuZXhwb3J0IGNvbnN0IEJPT0xFQU4gPSBcImJvb2xlYW5cIjtcbmV4cG9ydCBjb25zdCBFTlZJUk9OTUVOVCA9IFwiRU5WSVJPTk1FTlRcIjtcbmV4cG9ydCBjb25zdCBFTVBUWV9TVFJJTkcgPSBcIlwiO1xuZXhwb3J0IGNvbnN0IENPTlRFTlRfVFlQRSA9IFwiY29udGVudC10eXBlXCI7XG4iXSwibmFtZXMiOlsiVVRGOCIsIkVSUk9SIiwiQ1RSTF9DIiwiU1RSSU5HIiwiQUNDRVBUIiwiTlVNQkVSIiwiQk9PTEVBTiIsIkVOVklST05NRU5UIiwiRU1QVFlfU1RSSU5HIiwiQ09OVEVOVF9UWVBFIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVMLEdBQUssQ0FBQ0EsSUFBSSxHQUFHLENBQU07UUFBYkEsSUFBSSxHQUFKQSxJQUFJO0FBQ1YsR0FBSyxDQUFDQyxLQUFLLEdBQUcsQ0FBTztRQUFmQSxLQUFLLEdBQUxBLEtBQUs7QUFDWCxHQUFLLENBQUNDLE1BQU0sR0FBRyxDQUFJO1FBQWJBLE1BQU0sR0FBTkEsTUFBTTtBQUNaLEdBQUssQ0FBQ0MsTUFBTSxHQUFHLENBQVE7UUFBakJBLE1BQU0sR0FBTkEsTUFBTTtBQUNaLEdBQUssQ0FBQ0MsTUFBTSxHQUFHLENBQVE7UUFBakJBLE1BQU0sR0FBTkEsTUFBTTtBQUNaLEdBQUssQ0FBQ0MsTUFBTSxHQUFHLENBQVE7UUFBakJBLE1BQU0sR0FBTkEsTUFBTTtBQUNaLEdBQUssQ0FBQ0MsT0FBTyxHQUFHLENBQVM7UUFBbkJBLE9BQU8sR0FBUEEsT0FBTztBQUNiLEdBQUssQ0FBQ0MsV0FBVyxHQUFHLENBQWE7UUFBM0JBLFdBQVcsR0FBWEEsV0FBVztBQUNqQixHQUFLLENBQUNDLFlBQVksR0FBRyxDQUFFO1FBQWpCQSxZQUFZLEdBQVpBLFlBQVk7QUFDbEIsR0FBSyxDQUFDQyxZQUFZLEdBQUcsQ0FBYztRQUE3QkEsWUFBWSxHQUFaQSxZQUFZIn0=
|
package/lib/utilities/ajax.js
CHANGED
|
@@ -13,8 +13,7 @@ var _http = require("../utilities/http");
|
|
|
13
13
|
function get(host, uri, query, headers, callback) {
|
|
14
14
|
if (callback === undefined) {
|
|
15
15
|
callback = headers; ///
|
|
16
|
-
headers = {
|
|
17
|
-
};
|
|
16
|
+
headers = {};
|
|
18
17
|
}
|
|
19
18
|
var method = _methods.GET_METHOD, accept = _contentTypes.APPLICATION_JSON_CONTENT_TYPE, content = null;
|
|
20
19
|
underwriteAccept(headers, accept);
|
|
@@ -24,8 +23,7 @@ function post(host, uri, query, headers, content, callback) {
|
|
|
24
23
|
if (callback === undefined) {
|
|
25
24
|
callback = content;
|
|
26
25
|
content = headers;
|
|
27
|
-
headers = {
|
|
28
|
-
};
|
|
26
|
+
headers = {};
|
|
29
27
|
}
|
|
30
28
|
var method = _methods.POST_METHOD, accept = _contentTypes.APPLICATION_JSON_CONTENT_TYPE, contentType = _contentTypes.APPLICATION_JSON_CONTENT_TYPE;
|
|
31
29
|
underwriteAccept(headers, accept);
|
|
@@ -77,4 +75,4 @@ function underwriteContentType(headers, contentTYpe) {
|
|
|
77
75
|
(0, _http).underwrite(headers, name, value);
|
|
78
76
|
}
|
|
79
77
|
|
|
80
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYWpheC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQUNDRVBULCBDT05URU5UX1RZUEUgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHRVRfTUVUSE9ELCBQT1NUX01FVEhPRCB9IGZyb20gXCIuLi9tZXRob2RzXCI7XG5pbXBvcnQgeyBBUFBMSUNBVElPTl9KU09OX0NPTlRFTlRfVFlQRSB9IGZyb20gXCIuLi9jb250ZW50VHlwZXNcIjtcbmltcG9ydCB7IHVuZGVyd3JpdGUsIHVybEZyb21Ib3N0VVJJQW5kUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2h0dHBcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gaGVhZGVyczsgLy8vXG4gICAgaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kID0gR0VUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnQgPSBudWxsO1xuXG4gIHVuZGVyd3JpdGVBY2NlcHQoaGVhZGVycywgYWNjZXB0KTtcblxuICByZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY29udGVudCwgY2FsbGJhY2spO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zdChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gY29udGVudDtcbiAgICBjb250ZW50ID0gaGVhZGVycztcbiAgICBoZWFkZXJzID0ge307XG4gIH1cblxuICBjb25zdCBtZXRob2QgPSBQT1NUX01FVEhPRCxcbiAgICAgICAgYWNjZXB0ID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEUsXG4gICAgICAgIGNvbnRlbnRUeXBlID0gQVBQTElDQVRJT05fSlNPTl9DT05URU5UX1RZUEU7XG5cbiAgdW5kZXJ3cml0ZUFjY2VwdChoZWFkZXJzLCBhY2NlcHQpO1xuXG4gIHVuZGVyd3JpdGVDb250ZW50VHlwZShoZWFkZXJzLCBjb250ZW50VHlwZSk7XG5cbiAgcmVxdWVzdChob3N0LCB1cmksIHF1ZXJ5LCBtZXRob2QsIGhlYWRlcnMsIGNvbnRlbnQsIGNhbGxiYWNrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVlc3QoaG9zdCwgdXJpLCBxdWVyeSwgbWV0aG9kLCBoZWFkZXJzLCBjb250ZW50LCBjYWxsYmFjaykge1xuICBjb25zdCB1cmwgPSB1cmxGcm9tSG9zdFVSSUFuZFF1ZXJ5KGhvc3QsIHVyaSwgcXVlcnkpLFxuICAgICAgICBhY2NlcHQgPSBoZWFkZXJzW0FDQ0VQVF0gfHwgbnVsbCxcbiAgICAgICAgY29udGVudFR5cGUgPSBoZWFkZXJzW0NPTlRFTlRfVFlQRV0gfHwgbnVsbCxcbiAgICAgICAgeG1sSHR0cFJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcblxuICBpZiAoY29udGVudFR5cGUgPT09IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFKSB7XG4gICAgY29uc3QganNvbiA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBqc29uU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG5cbiAgICBjb250ZW50ID0ganNvblN0cmluZzsgIC8vL1xuICB9XG5cbiAgeG1sSHR0cFJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgcmVhZHlTdGF0ZSwgc3RhdHVzLCByZXNwb25zZSB9ID0geG1sSHR0cFJlcXVlc3QsXG4gICAgICAgICAgc3RhdHVzQ29kZSA9IHN0YXR1cztcblxuICAgIGlmIChyZWFkeVN0YXRlID09IDQpIHtcbiAgICAgIGxldCBjb250ZW50ID0gcmVzcG9uc2U7XG5cbiAgICAgIGlmIChhY2NlcHQgPT09IEFQUExJQ0FUSU9OX0pTT05fQ09OVEVOVF9UWVBFKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QganNvblN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcblxuICAgICAgICAgIGNvbnRlbnQgPSBqc29uOyAgLy8vXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29udGVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soY29udGVudCwgc3RhdHVzQ29kZSk7XG4gICAgfVxuICB9O1xuXG4gIHhtbEh0dHBSZXF1ZXN0Lm9wZW4obWV0aG9kLCB1cmwpO1xuXG4gIGlmIChhY2NlcHQgIT09IG51bGwpIHtcbiAgICB4bWxIdHRwUmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKEFDQ0VQVCwgYWNjZXB0KTtcbiAgfVxuXG4gIGlmIChjb250ZW50VHlwZSAhPT0gbnVsbCkge1xuICAgIHhtbEh0dHBSZXF1ZXN0LnNldFJlcXVlc3RIZWFkZXIoQ09OVEVOVF9UWVBFLCBjb250ZW50VHlwZSk7XG4gIH1cblxuICAoY29udGVudCAhPT0gbnVsbCkgP1xuICAgIHhtbEh0dHBSZXF1ZXN0LnNlbmQoY29udGVudCkgOlxuICAgICAgeG1sSHR0cFJlcXVlc3Quc2VuZCgpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGdldCxcbiAgcG9zdCxcbiAgcmVxdWVzdFxufVxuXG5mdW5jdGlvbiB1bmRlcndyaXRlQWNjZXB0KGhlYWRlcnMsIGFjY2VwdCkge1xuICBjb25zdCBuYW1lID0gQUNDRVBULCAgLy8vXG4gICAgICAgIHZhbHVlID0gYWNjZXB0OyAvLy9cblxuICB1bmRlcndyaXRlKGhlYWRlcnMsIG5hbWUsIHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gdW5kZXJ3cml0ZUNvbnRlbnRUeXBlKGhlYWRlcnMsIGNvbnRlbnRUWXBlKSB7XG4gIGNvbnN0IG5hbWUgPSBDT05URU5UX1RZUEUsICAvLy9cbiAgICAgICAgdmFsdWUgPSBjb250ZW50VFlwZTsgLy8vXG5cbiAgdW5kZXJ3cml0ZShoZWFkZXJzLCBuYW1lLCB2YWx1ZSk7XG59XG4iXSwibmFtZXMiOlsiZ2V0IiwicG9zdCIsInJlcXVlc3QiLCJob3N0IiwidXJpIiwicXVlcnkiLCJoZWFkZXJzIiwiY2FsbGJhY2siLCJ1bmRlZmluZWQiLCJtZXRob2QiLCJhY2NlcHQiLCJjb250ZW50IiwidW5kZXJ3cml0ZUFjY2VwdCIsImNvbnRlbnRUeXBlIiwidW5kZXJ3cml0ZUNvbnRlbnRUeXBlIiwidXJsIiwieG1sSHR0cFJlcXVlc3QiLCJYTUxIdHRwUmVxdWVzdCIsImpzb24iLCJqc29uU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsInN0YXR1c0NvZGUiLCJwYXJzZSIsImVycm9yIiwib3BlbiIsInNldFJlcXVlc3RIZWFkZXIiLCJzZW5kIiwibmFtZSIsInZhbHVlIiwiY29udGVudFRZcGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7UUFPSUEsR0FBRyxHQUFIQSxHQUFHO1FBZUhDLElBQUksR0FBSkEsSUFBSTtRQWtCSkMsT0FBTyxHQUFQQSxPQUFPOztBQXRDYyxHQUFjLENBQWQsVUFBYztBQUNYLEdBQVksQ0FBWixRQUFZO0FBQ04sR0FBaUIsQ0FBakIsYUFBaUI7QUFDWixHQUFtQixDQUFuQixLQUFtQjtTQUV0REYsR0FBRyxDQUFDRyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRSxDQUFDO0lBQ3hELEVBQUUsRUFBRUEsUUFBUSxLQUFLQyxTQUFTLEVBQUUsQ0FBQztRQUMzQkQsUUFBUSxHQUFHRCxPQUFPLENBQUUsQ0FB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
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
exports.default = void 0;
|
|
6
6
|
var _array = require("../utilities/array");
|
|
7
7
|
var _defaults = require("../defaults");
|
|
8
|
+
var _constants = require("../constants");
|
|
8
9
|
var _fileSystem = require("../utilities/fileSystem");
|
|
9
10
|
function _instanceof(left, right) {
|
|
10
11
|
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
@@ -13,6 +14,10 @@ function _instanceof(left, right) {
|
|
|
13
14
|
return left instanceof right;
|
|
14
15
|
}
|
|
15
16
|
}
|
|
17
|
+
var _typeof = function(obj) {
|
|
18
|
+
"@swc/helpers - typeof";
|
|
19
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
20
|
+
};
|
|
16
21
|
if (!globalThis.rc) {
|
|
17
22
|
globalThis.rc = _rc;
|
|
18
23
|
}
|
|
@@ -22,28 +27,13 @@ var _default = {
|
|
|
22
27
|
};
|
|
23
28
|
exports.default = _default;
|
|
24
29
|
var baseExtension = _defaults.DEFAULT_RC_BASE_EXTENSION;
|
|
25
|
-
function _rc() {
|
|
26
|
-
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
environmentName = environmentNameOrArgv; ///
|
|
33
|
-
}
|
|
34
|
-
var json = readRCFile(), environments = json.environments;
|
|
35
|
-
if (environmentName === null) {
|
|
36
|
-
var firstEnvironment = (0, _array).first(environments);
|
|
37
|
-
environment1 = firstEnvironment; ///
|
|
38
|
-
} else {
|
|
39
|
-
environment1 = environments.find(function(environment) {
|
|
40
|
-
var name = environment.name, found = name === environmentName;
|
|
41
|
-
return found;
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
delete environment1.name;
|
|
45
|
-
Object.assign(rc, environment1);
|
|
46
|
-
return environment1;
|
|
30
|
+
function _rc(environmentName) {
|
|
31
|
+
environmentName = environmentName || environmentNameFromArgv() || environmentNameFromEnv(); ///
|
|
32
|
+
var json = readRCFile();
|
|
33
|
+
var environment = findEnvironment(json, environmentName);
|
|
34
|
+
json = environment; ///
|
|
35
|
+
replaceEnvironmentVariables(json);
|
|
36
|
+
Object.assign(rc, environment);
|
|
47
37
|
}
|
|
48
38
|
function readRCFile() {
|
|
49
39
|
var rcFilePath = rcFilePathFromNothing(), rcFileContent = (0, _fileSystem).readFile(rcFilePath), json = JSON.parse(rcFileContent);
|
|
@@ -73,8 +63,7 @@ function checkRCFileExists() {
|
|
|
73
63
|
function createVacuousRCFile() {
|
|
74
64
|
var json = {
|
|
75
65
|
"environments": [
|
|
76
|
-
{
|
|
77
|
-
}
|
|
66
|
+
{}
|
|
78
67
|
]
|
|
79
68
|
};
|
|
80
69
|
writeRCFile(json);
|
|
@@ -90,9 +79,34 @@ Object.assign(_rc, {
|
|
|
90
79
|
createVacuousRCFile: createVacuousRCFile,
|
|
91
80
|
setRCBaseExtension: setRCBaseExtension
|
|
92
81
|
});
|
|
93
|
-
function
|
|
82
|
+
function findEnvironment(json, environmentName) {
|
|
83
|
+
var environment1;
|
|
84
|
+
var environments = json.environments;
|
|
85
|
+
if (environmentName === null) {
|
|
86
|
+
var firstEnvironment = (0, _array).first(environments);
|
|
87
|
+
environment1 = firstEnvironment; ///
|
|
88
|
+
} else {
|
|
89
|
+
environment1 = environments.find(function(environment) {
|
|
90
|
+
var name = environment.name;
|
|
91
|
+
if (name === environmentName) {
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
delete environment1.name;
|
|
97
|
+
return environment1;
|
|
98
|
+
}
|
|
99
|
+
function rcFilePathFromNothing() {
|
|
100
|
+
var rcFilePath = "./.".concat(baseExtension, "rc");
|
|
101
|
+
return rcFilePath;
|
|
102
|
+
}
|
|
103
|
+
function environmentNameFromEnv() {
|
|
104
|
+
var environmentName = process.env[_constants.ENVIRONMENT] || null;
|
|
105
|
+
return environmentName;
|
|
106
|
+
}
|
|
107
|
+
function environmentNameFromArgv() {
|
|
94
108
|
var environmentName = null;
|
|
95
|
-
argv.find(function(argument) {
|
|
109
|
+
process.argv.find(function(argument) {
|
|
96
110
|
var matches = argument.match(/--environment=(.+)/), found = matches !== null;
|
|
97
111
|
if (found) {
|
|
98
112
|
var secondMatch = (0, _array).second(matches);
|
|
@@ -102,9 +116,73 @@ function environmentNameFromArgv(argv) {
|
|
|
102
116
|
});
|
|
103
117
|
return environmentName;
|
|
104
118
|
}
|
|
105
|
-
function
|
|
106
|
-
var
|
|
107
|
-
|
|
119
|
+
function replaceEnvironmentVariable(string) {
|
|
120
|
+
var value = null;
|
|
121
|
+
var stringUpperCase = isStringUpperCase(string);
|
|
122
|
+
if (stringUpperCase) {
|
|
123
|
+
var name = string; ///
|
|
124
|
+
value = process.env[name] || null;
|
|
125
|
+
}
|
|
126
|
+
return value;
|
|
127
|
+
}
|
|
128
|
+
function replaceEnvironmentVariables(environment) {
|
|
129
|
+
var json = environment;
|
|
130
|
+
var jsonArray = isJSONArray(json), jsonObject = isJSONObject(json);
|
|
131
|
+
if (false) {
|
|
132
|
+
///
|
|
133
|
+
} else if (jsonArray) {
|
|
134
|
+
var array = json, length = array.length;
|
|
135
|
+
for(var index = 0; index < length; index++){
|
|
136
|
+
var json1 = array[index], jsonString = isJSONString(json1);
|
|
137
|
+
if (jsonString) {
|
|
138
|
+
var string = json1, value = replaceEnvironmentVariable(string);
|
|
139
|
+
if (value !== null) {
|
|
140
|
+
array[index] = value;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
} else if (jsonObject) {
|
|
145
|
+
var object = json; ///
|
|
146
|
+
for(var name in object){
|
|
147
|
+
var json2 = object[name], jsonString1 = isJSONString(json2);
|
|
148
|
+
if (jsonString1) {
|
|
149
|
+
var string1 = json2, value1 = replaceEnvironmentVariable(string1); ///
|
|
150
|
+
if (value1 !== null) {
|
|
151
|
+
object[name] = value1;
|
|
152
|
+
}
|
|
153
|
+
} else {
|
|
154
|
+
replaceEnvironmentVariables(json2);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function isJSONArray(json) {
|
|
160
|
+
var jsonArray = _instanceof(json, Array);
|
|
161
|
+
return jsonArray;
|
|
162
|
+
}
|
|
163
|
+
function isJSONObject(json) {
|
|
164
|
+
var jsonArray = isJSONArray(json), jsonPrimitive = isJSONPrimitive(json), jsonObject = !jsonArray && !jsonPrimitive;
|
|
165
|
+
return jsonObject;
|
|
166
|
+
}
|
|
167
|
+
function isJSONString(json) {
|
|
168
|
+
var jsonString = (typeof json === "undefined" ? "undefined" : _typeof(json)) === _constants.STRING;
|
|
169
|
+
return jsonString;
|
|
170
|
+
}
|
|
171
|
+
function isJSONNumber(json) {
|
|
172
|
+
var jsonNumber = (typeof json === "undefined" ? "undefined" : _typeof(json)) === _constants.NUMBER;
|
|
173
|
+
return jsonNumber;
|
|
174
|
+
}
|
|
175
|
+
function isJSONBoolean(json) {
|
|
176
|
+
var jsonBoolean = (typeof json === "undefined" ? "undefined" : _typeof(json)) === _constants.BOOLEAN;
|
|
177
|
+
return jsonBoolean;
|
|
178
|
+
}
|
|
179
|
+
function isJSONPrimitive(json) {
|
|
180
|
+
var jsonString = isJSONString(json), jsonNumber = isJSONNumber(json), jsonBoolean = isJSONBoolean(json), jsonPrimitive = jsonString || jsonNumber || jsonBoolean;
|
|
181
|
+
return jsonPrimitive;
|
|
182
|
+
}
|
|
183
|
+
function isStringUpperCase(string) {
|
|
184
|
+
var upperCaseString = string.toUpperCase(), stringUpperCase = string === upperCaseString;
|
|
185
|
+
return stringUpperCase;
|
|
108
186
|
}
|
|
109
187
|
|
|
110
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlndXJhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IERFRkFVTFRfUkNfQkFTRV9FWFRFTlNJT04gfSBmcm9tIFwiLi4vZGVmYXVsdHNcIjtcbmltcG9ydCB7IHJlYWRGaWxlLCB3cml0ZUZpbGUsIGNoZWNrRmlsZUV4aXN0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiO1xuXG5pZiAoIWdsb2JhbFRoaXMucmMpIHtcbiAgZ2xvYmFsVGhpcy5yYyA9IF9yYztcbn1cblxuY29uc3QgeyByYyB9ID0gZ2xvYmFsVGhpcztcblxuZXhwb3J0IGRlZmF1bHQge1xuICByY1xufTtcblxubGV0IGJhc2VFeHRlbnNpb24gPSBERUZBVUxUX1JDX0JBU0VfRVhURU5TSU9OO1xuXG5mdW5jdGlvbiBfcmMoZW52aXJvbm1lbnROYW1lT3JBcmd2ID0gbnVsbCkge1xuICBsZXQgZW52aXJvbm1lbnQsXG4gICAgICBlbnZpcm9ubWVudE5hbWUsXG4gICAgICBlbnZpcm9ubWVudE5hbWVPckFyZ3ZBcmd2ID0gKGVudmlyb25tZW50TmFtZU9yQXJndiBpbnN0YW5jZW9mIEFycmF5KTtcblxuICBpZiAoZW52aXJvbm1lbnROYW1lT3JBcmd2QXJndikge1xuICAgIGNvbnN0IGFyZ3YgPSBlbnZpcm9ubWVudE5hbWVPckFyZ3Y7IC8vL1xuXG4gICAgZW52aXJvbm1lbnROYW1lID0gZW52aXJvbm1lbnROYW1lRnJvbUFyZ3YoYXJndik7XG4gIH0gZWxzZSB7XG4gICAgZW52aXJvbm1lbnROYW1lID0gZW52aXJvbm1lbnROYW1lT3JBcmd2OyAgLy8vXG4gIH1cblxuICBjb25zdCBqc29uID0gcmVhZFJDRmlsZSgpLFxuICAgICAgICB7IGVudmlyb25tZW50cyB9ID0ganNvbjtcblxuICBpZiAoZW52aXJvbm1lbnROYW1lID09PSBudWxsKSB7XG4gICAgY29uc3QgZmlyc3RFbnZpcm9ubWVudCA9IGZpcnN0KGVudmlyb25tZW50cyk7XG5cbiAgICBlbnZpcm9ubWVudCA9IGZpcnN0RW52aXJvbm1lbnQ7IC8vL1xuICB9IGVsc2Uge1xuICAgIGVudmlyb25tZW50ID0gZW52aXJvbm1lbnRzLmZpbmQoKGVudmlyb25tZW50KSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IGVudmlyb25tZW50LFxuICAgICAgICAgICAgZm91bmQgPSAobmFtZSA9PT0gZW52aXJvbm1lbnROYW1lKTtcblxuICAgICAgcmV0dXJuIGZvdW5kO1xuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlIGVudmlyb25tZW50Lm5hbWU7XG5cbiAgT2JqZWN0LmFzc2lnbihyYywgZW52aXJvbm1lbnQpO1xuXG4gIHJldHVybiBlbnZpcm9ubWVudDtcbn1cblxuZnVuY3Rpb24gcmVhZFJDRmlsZSgpIHtcbiAgY29uc3QgcmNGaWxlUGF0aCA9IHJjRmlsZVBhdGhGcm9tTm90aGluZygpLFxuICAgICAgICByY0ZpbGVDb250ZW50ID0gcmVhZEZpbGUocmNGaWxlUGF0aCksXG4gICAgICAgIGpzb24gPSBKU09OLnBhcnNlKHJjRmlsZUNvbnRlbnQpO1xuXG4gIHJldHVybiBqc29uOyAgICAgIFxufVxuXG5mdW5jdGlvbiB3cml0ZVJDRmlsZShqc29uKSB7XG4gIGNvbnN0IHJjRmlsZVBhdGggPSByY0ZpbGVQYXRoRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgcmRGaWxlQ29udGVudCA9IEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiICBcIik7XG5cbiAgd3JpdGVGaWxlKHJjRmlsZVBhdGgsIHJkRmlsZUNvbnRlbnQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVSQ0ZpbGUoYWRkZWRQcm9wZXJ0aWVzLCAuLi5kZWxldGVkUHJvcGVydHlOYW1lcykge1xuICBsZXQganNvbiA9IHJlYWRSQ0ZpbGUoKTtcblxuICBpZiAoYWRkZWRQcm9wZXJ0aWVzKSB7XG4gICAgT2JqZWN0LmFzc2lnbihqc29uLCBhZGRlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgZGVsZXRlZFByb3BlcnR5TmFtZXMuZm9yRWFjaCgoZGVsZXRlZFByb3BlcnR5TmFtZSkgPT4ge1xuICAgIGRlbGV0ZSBqc29uW2RlbGV0ZWRQcm9wZXJ0eU5hbWVdO1xuICB9KTtcblxuICB3cml0ZVJDRmlsZShqc29uKTsgICAgICBcbn1cblxuZnVuY3Rpb24gY2hlY2tSQ0ZpbGVFeGlzdHMoKSB7XG4gIGNvbnN0IHJjRmlsZVBhdGggPSByY0ZpbGVQYXRoRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgcmNGaWxlRXhpc3RzID0gY2hlY2tGaWxlRXhpc3RzKHJjRmlsZVBhdGgpO1xuXG4gIHJldHVybiByY0ZpbGVFeGlzdHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVZhY3VvdXNSQ0ZpbGUoKSB7XG4gIGNvbnN0IGpzb24gPSB7XG4gICAgXCJlbnZpcm9ubWVudHNcIjogW1xuICAgICAge31cbiAgICBdXG4gIH07XG5cbiAgd3JpdGVSQ0ZpbGUoanNvbik7XG59XG5cbmZ1bmN0aW9uIHNldFJDQmFzZUV4dGVuc2lvbihyY0Jhc2VFeHRlbnNpb24pIHsgYmFzZUV4dGVuc2lvbiA9IHJjQmFzZUV4dGVuc2lvbjsgfVxuXG5PYmplY3QuYXNzaWduKF9yYywge1xuICByZWFkUkNGaWxlLFxuICB3cml0ZVJDRmlsZSxcbiAgdXBkYXRlUkNGaWxlLFxuICBjaGVja1JDRmlsZUV4aXN0cyxcbiAgY3JlYXRlVmFjdW91c1JDRmlsZSxcbiAgc2V0UkNCYXNlRXh0ZW5zaW9uXG59KTtcblxuZnVuY3Rpb24gZW52aXJvbm1lbnROYW1lRnJvbUFyZ3YoYXJndikge1xuICBsZXQgZW52aXJvbm1lbnROYW1lID0gbnVsbDtcblxuICBhcmd2LmZpbmQoKGFyZ3VtZW50KSA9PiB7ICAvLy9cbiAgICBjb25zdCBtYXRjaGVzID0gYXJndW1lbnQubWF0Y2goLy0tZW52aXJvbm1lbnQ9KC4rKS8pLFxuICAgICAgICAgIGZvdW5kID0gKG1hdGNoZXMgIT09IG51bGwpO1xuXG4gICAgaWYgKGZvdW5kKSB7XG4gICAgICBjb25zdCBzZWNvbmRNYXRjaCA9IHNlY29uZChtYXRjaGVzKTtcblxuICAgICAgZW52aXJvbm1lbnROYW1lID0gc2Vjb25kTWF0Y2g7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvdW5kO1xuICB9KTtcblxuICByZXR1cm4gZW52aXJvbm1lbnROYW1lO1xufVxuXG5mdW5jdGlvbiByY0ZpbGVQYXRoRnJvbU5vdGhpbmcoKSB7XG4gIGNvbnN0IHJjRmlsZVBhdGggPSBgLi8uJHtiYXNlRXh0ZW5zaW9ufXJjYDtcblxuICByZXR1cm4gcmNGaWxlUGF0aDtcbn1cbiJdLCJuYW1lcyI6WyJnbG9iYWxUaGlzIiwicmMiLCJfcmMiLCJiYXNlRXh0ZW5zaW9uIiwiZW52aXJvbm1lbnROYW1lT3JBcmd2IiwiZW52aXJvbm1lbnQiLCJlbnZpcm9ubWVudE5hbWUiLCJlbnZpcm9ubWVudE5hbWVPckFyZ3ZBcmd2IiwiQXJyYXkiLCJhcmd2IiwiZW52aXJvbm1lbnROYW1lRnJvbUFyZ3YiLCJqc29uIiwicmVhZFJDRmlsZSIsImVudmlyb25tZW50cyIsImZpcnN0RW52aXJvbm1lbnQiLCJmaW5kIiwibmFtZSIsImZvdW5kIiwiT2JqZWN0IiwiYXNzaWduIiwicmNGaWxlUGF0aCIsInJjRmlsZVBhdGhGcm9tTm90aGluZyIsInJjRmlsZUNvbnRlbnQiLCJKU09OIiwicGFyc2UiLCJ3cml0ZVJDRmlsZSIsInJkRmlsZUNvbnRlbnQiLCJzdHJpbmdpZnkiLCJ1cGRhdGVSQ0ZpbGUiLCJhZGRlZFByb3BlcnRpZXMiLCJkZWxldGVkUHJvcGVydHlOYW1lcyIsImZvckVhY2giLCJkZWxldGVkUHJvcGVydHlOYW1lIiwiY2hlY2tSQ0ZpbGVFeGlzdHMiLCJyY0ZpbGVFeGlzdHMiLCJjcmVhdGVWYWN1b3VzUkNGaWxlIiwic2V0UkNCYXNlRXh0ZW5zaW9uIiwicmNCYXNlRXh0ZW5zaW9uIiwiYXJndW1lbnQi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
|
|
188
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlndXJhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IERFRkFVTFRfUkNfQkFTRV9FWFRFTlNJT04gfSBmcm9tIFwiLi4vZGVmYXVsdHNcIjtcbmltcG9ydCB7IFNUUklORywgTlVNQkVSLCBCT09MRUFOLCBFTlZJUk9OTUVOVCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHJlYWRGaWxlLCB3cml0ZUZpbGUsIGNoZWNrRmlsZUV4aXN0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiO1xuXG5pZiAoIWdsb2JhbFRoaXMucmMpIHtcbiAgZ2xvYmFsVGhpcy5yYyA9IF9yYztcbn1cblxuY29uc3QgeyByYyB9ID0gZ2xvYmFsVGhpcztcblxuZXhwb3J0IGRlZmF1bHQge1xuICByY1xufTtcblxubGV0IGJhc2VFeHRlbnNpb24gPSBERUZBVUxUX1JDX0JBU0VfRVhURU5TSU9OO1xuXG5mdW5jdGlvbiBfcmMoZW52aXJvbm1lbnROYW1lKSB7XG4gIGVudmlyb25tZW50TmFtZSA9IGVudmlyb25tZW50TmFtZSB8fCBlbnZpcm9ubWVudE5hbWVGcm9tQXJndigpIHx8IGVudmlyb25tZW50TmFtZUZyb21FbnYoKTsgLy8vXG5cbiAgbGV0IGpzb24gPSByZWFkUkNGaWxlKCk7XG5cbiAgY29uc3QgZW52aXJvbm1lbnQgPSBmaW5kRW52aXJvbm1lbnQoanNvbiwgZW52aXJvbm1lbnROYW1lKTtcblxuICBqc29uID0gZW52aXJvbm1lbnQ7IC8vL1xuXG4gIHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlcyhqc29uKTtcblxuICBPYmplY3QuYXNzaWduKHJjLCBlbnZpcm9ubWVudCk7XG59XG5cbmZ1bmN0aW9uIHJlYWRSQ0ZpbGUoKSB7XG4gIGNvbnN0IHJjRmlsZVBhdGggPSByY0ZpbGVQYXRoRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgcmNGaWxlQ29udGVudCA9IHJlYWRGaWxlKHJjRmlsZVBhdGgpLFxuICAgICAgICBqc29uID0gSlNPTi5wYXJzZShyY0ZpbGVDb250ZW50KTtcblxuICByZXR1cm4ganNvbjsgICAgICBcbn1cblxuZnVuY3Rpb24gd3JpdGVSQ0ZpbGUoanNvbikge1xuICBjb25zdCByY0ZpbGVQYXRoID0gcmNGaWxlUGF0aEZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJkRmlsZUNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCBcIiAgXCIpO1xuXG4gIHdyaXRlRmlsZShyY0ZpbGVQYXRoLCByZEZpbGVDb250ZW50KTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlUkNGaWxlKGFkZGVkUHJvcGVydGllcywgLi4uZGVsZXRlZFByb3BlcnR5TmFtZXMpIHtcbiAgbGV0IGpzb24gPSByZWFkUkNGaWxlKCk7XG5cbiAgaWYgKGFkZGVkUHJvcGVydGllcykge1xuICAgIE9iamVjdC5hc3NpZ24oanNvbiwgYWRkZWRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIGRlbGV0ZWRQcm9wZXJ0eU5hbWVzLmZvckVhY2goKGRlbGV0ZWRQcm9wZXJ0eU5hbWUpID0+IHtcbiAgICBkZWxldGUganNvbltkZWxldGVkUHJvcGVydHlOYW1lXTtcbiAgfSk7XG5cbiAgd3JpdGVSQ0ZpbGUoanNvbik7ICAgICAgXG59XG5cbmZ1bmN0aW9uIGNoZWNrUkNGaWxlRXhpc3RzKCkge1xuICBjb25zdCByY0ZpbGVQYXRoID0gcmNGaWxlUGF0aEZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJjRmlsZUV4aXN0cyA9IGNoZWNrRmlsZUV4aXN0cyhyY0ZpbGVQYXRoKTtcblxuICByZXR1cm4gcmNGaWxlRXhpc3RzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVWYWN1b3VzUkNGaWxlKCkge1xuICBjb25zdCBqc29uID0ge1xuICAgIFwiZW52aXJvbm1lbnRzXCI6IFtcbiAgICAgIHt9XG4gICAgXVxuICB9O1xuXG4gIHdyaXRlUkNGaWxlKGpzb24pO1xufVxuXG5mdW5jdGlvbiBzZXRSQ0Jhc2VFeHRlbnNpb24ocmNCYXNlRXh0ZW5zaW9uKSB7IGJhc2VFeHRlbnNpb24gPSByY0Jhc2VFeHRlbnNpb247IH1cblxuT2JqZWN0LmFzc2lnbihfcmMsIHtcbiAgcmVhZFJDRmlsZSxcbiAgd3JpdGVSQ0ZpbGUsXG4gIHVwZGF0ZVJDRmlsZSxcbiAgY2hlY2tSQ0ZpbGVFeGlzdHMsXG4gIGNyZWF0ZVZhY3VvdXNSQ0ZpbGUsXG4gIHNldFJDQmFzZUV4dGVuc2lvblxufSk7XG5cbmZ1bmN0aW9uIGZpbmRFbnZpcm9ubWVudChqc29uLCBlbnZpcm9ubWVudE5hbWUpIHtcbiAgbGV0IGVudmlyb25tZW50O1xuICBjb25zdCB7IGVudmlyb25tZW50cyB9ID0ganNvbjtcblxuICBpZiAoZW52aXJvbm1lbnROYW1lID09PSBudWxsKSB7XG4gICAgY29uc3QgZmlyc3RFbnZpcm9ubWVudCA9IGZpcnN0KGVudmlyb25tZW50cyk7XG5cbiAgICBlbnZpcm9ubWVudCA9IGZpcnN0RW52aXJvbm1lbnQ7IC8vL1xuICB9IGVsc2Uge1xuICAgIGVudmlyb25tZW50ID0gZW52aXJvbm1lbnRzLmZpbmQoKGVudmlyb25tZW50KSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IGVudmlyb25tZW50O1xuXG4gICAgICBpZihuYW1lID09PSBlbnZpcm9ubWVudE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkZWxldGUgZW52aXJvbm1lbnQubmFtZVxuXG4gIHJldHVybiBlbnZpcm9ubWVudDtcbn1cblxuZnVuY3Rpb24gcmNGaWxlUGF0aEZyb21Ob3RoaW5nKCkge1xuICBjb25zdCByY0ZpbGVQYXRoID0gYC4vLiR7YmFzZUV4dGVuc2lvbn1yY2A7XG5cbiAgcmV0dXJuIHJjRmlsZVBhdGg7XG59XG5cbmZ1bmN0aW9uIGVudmlyb25tZW50TmFtZUZyb21FbnYoKSB7XG4gIGNvbnN0IGVudmlyb25tZW50TmFtZSA9IHByb2Nlc3MuZW52W0VOVklST05NRU5UXSB8fCBudWxsO1xuXG4gIHJldHVybiBlbnZpcm9ubWVudE5hbWU7XG59XG5cbmZ1bmN0aW9uIGVudmlyb25tZW50TmFtZUZyb21Bcmd2KCkge1xuICBsZXQgZW52aXJvbm1lbnROYW1lID0gbnVsbDtcblxuICBwcm9jZXNzLmFyZ3YuZmluZCgoYXJndW1lbnQpID0+IHsgIC8vL1xuICAgIGNvbnN0IG1hdGNoZXMgPSBhcmd1bWVudC5tYXRjaCgvLS1lbnZpcm9ubWVudD0oLispLyksXG4gICAgICAgICAgZm91bmQgPSAobWF0Y2hlcyAhPT0gbnVsbCk7XG5cbiAgICBpZiAoZm91bmQpIHtcbiAgICAgIGNvbnN0IHNlY29uZE1hdGNoID0gc2Vjb25kKG1hdGNoZXMpO1xuXG4gICAgICBlbnZpcm9ubWVudE5hbWUgPSBzZWNvbmRNYXRjaDtcbiAgICB9XG5cbiAgICByZXR1cm4gZm91bmQ7XG4gIH0pO1xuXG4gIHJldHVybiBlbnZpcm9ubWVudE5hbWU7XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlKHN0cmluZykge1xuICBsZXQgdmFsdWUgPSBudWxsO1xuXG4gIGNvbnN0IHN0cmluZ1VwcGVyQ2FzZSA9IGlzU3RyaW5nVXBwZXJDYXNlKHN0cmluZyk7XG5cbiAgaWYgKHN0cmluZ1VwcGVyQ2FzZSkge1xuICAgIGNvbnN0IG5hbWUgPSBzdHJpbmc7ICAvLy9cblxuICAgIHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV0gfHwgbnVsbDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUVudmlyb25tZW50VmFyaWFibGVzKGVudmlyb25tZW50KSB7XG4gIGxldCBqc29uID0gZW52aXJvbm1lbnQ7XG5cbiAgY29uc3QganNvbkFycmF5ID0gaXNKU09OQXJyYXkoanNvbiksXG4gICAgICAgIGpzb25PYmplY3QgPSBpc0pTT05PYmplY3QoanNvbik7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAoanNvbkFycmF5KSB7XG4gICAgY29uc3QgYXJyYXkgPSBqc29uLFxuICAgICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGpzb24gPSBhcnJheVtpbmRleF0sXG4gICAgICAgICAgICBqc29uU3RyaW5nID0gaXNKU09OU3RyaW5nKGpzb24pO1xuXG4gICAgICBpZiAoanNvblN0cmluZykge1xuICAgICAgICBjb25zdCBzdHJpbmcgPSBqc29uLFxuICAgICAgICAgICAgICB2YWx1ZSA9IHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlKHN0cmluZyk7XG5cbiAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgYXJyYXlbaW5kZXhdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoanNvbk9iamVjdCkge1xuICAgIGNvbnN0IG9iamVjdCA9IGpzb247ICAvLy9cblxuICAgIGZvciAobGV0IG5hbWUgaW4gb2JqZWN0KSB7XG4gICAgICBjb25zdCBqc29uID0gb2JqZWN0W25hbWVdLFxuICAgICAgICAgICAganNvblN0cmluZyA9IGlzSlNPTlN0cmluZyhqc29uKTtcblxuICAgICAgaWYgKGpzb25TdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nID0ganNvbiwgIC8vL1xuICAgICAgICAgICAgICB2YWx1ZSA9IHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlKHN0cmluZyk7ICAvLy9cblxuICAgICAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICBvYmplY3RbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlICB7XG4gICAgICAgIHJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlcyhqc29uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNKU09OQXJyYXkoanNvbikge1xuICBjb25zdCBqc29uQXJyYXkgPSAoanNvbiBpbnN0YW5jZW9mIEFycmF5KTtcblxuICByZXR1cm4ganNvbkFycmF5O1xufVxuXG5mdW5jdGlvbiBpc0pTT05PYmplY3QoanNvbikge1xuICBjb25zdCBqc29uQXJyYXkgPSBpc0pTT05BcnJheShqc29uKSxcbiAgICAgICAganNvblByaW1pdGl2ZSA9IGlzSlNPTlByaW1pdGl2ZShqc29uKSxcbiAgICAgICAganNvbk9iamVjdCA9ICghanNvbkFycmF5ICYmICEganNvblByaW1pdGl2ZSk7XG5cbiAgcmV0dXJuIGpzb25PYmplY3Q7XG59XG5cbmZ1bmN0aW9uIGlzSlNPTlN0cmluZyhqc29uKSB7XG4gIGNvbnN0IGpzb25TdHJpbmcgPSAodHlwZW9mIGpzb24gPT09IFNUUklORyk7XG5cbiAgcmV0dXJuIGpzb25TdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGlzSlNPTk51bWJlcihqc29uKSB7XG4gIGNvbnN0IGpzb25OdW1iZXIgPSAodHlwZW9mIGpzb24gPT09IE5VTUJFUik7XG5cbiAgcmV0dXJuIGpzb25OdW1iZXI7XG59XG5cbmZ1bmN0aW9uIGlzSlNPTkJvb2xlYW4oanNvbikge1xuICBjb25zdCBqc29uQm9vbGVhbiA9ICh0eXBlb2YganNvbiA9PT0gQk9PTEVBTik7XG5cbiAgcmV0dXJuIGpzb25Cb29sZWFuO1xufVxuXG5mdW5jdGlvbiBpc0pTT05QcmltaXRpdmUoanNvbikge1xuICBjb25zdCBqc29uU3RyaW5nID0gaXNKU09OU3RyaW5nKGpzb24pLFxuICAgICAgICBqc29uTnVtYmVyID0gaXNKU09OTnVtYmVyKGpzb24pLFxuICAgICAgICBqc29uQm9vbGVhbiA9IGlzSlNPTkJvb2xlYW4oanNvbiksXG4gICAgICAgIGpzb25QcmltaXRpdmUgPSAoanNvblN0cmluZyB8fCBqc29uTnVtYmVyIHx8IGpzb25Cb29sZWFuKTtcblxuICByZXR1cm4ganNvblByaW1pdGl2ZTtcbn1cblxuZnVuY3Rpb24gaXNTdHJpbmdVcHBlckNhc2Uoc3RyaW5nKSB7XG4gIGNvbnN0IHVwcGVyQ2FzZVN0cmluZyA9IHN0cmluZy50b1VwcGVyQ2FzZSgpLFxuICAgICAgICBzdHJpbmdVcHBlckNhc2UgPSAoc3RyaW5nID09PSB1cHBlckNhc2VTdHJpbmcpO1xuXG4gIHJldHVybiBzdHJpbmdVcHBlckNhc2U7XG59XG4iXSwibmFtZXMiOlsiZ2xvYmFsVGhpcyIsInJjIiwiX3JjIiwiYmFzZUV4dGVuc2lvbiIsImVudmlyb25tZW50TmFtZSIsImVudmlyb25tZW50TmFtZUZyb21Bcmd2IiwiZW52aXJvbm1lbnROYW1lRnJvbUVudiIsImpzb24iLCJyZWFkUkNGaWxlIiwiZW52aXJvbm1lbnQiLCJmaW5kRW52aXJvbm1lbnQiLCJyZXBsYWNlRW52aXJvbm1lbnRWYXJpYWJsZXMiLCJPYmplY3QiLCJhc3NpZ24iLCJyY0ZpbGVQYXRoIiwicmNGaWxlUGF0aEZyb21Ob3RoaW5nIiwicmNGaWxlQ29udGVudCIsIkpTT04iLCJwYXJzZSIsIndyaXRlUkNGaWxlIiwicmRGaWxlQ29udGVudCIsInN0cmluZ2lmeSIsInVwZGF0ZVJDRmlsZSIsImFkZGVkUHJvcGVydGllcyIsImRlbGV0ZWRQcm9wZXJ0eU5hbWVzIiwiZm9yRWFjaCIsImRlbGV0ZWRQcm9wZXJ0eU5hbWUiLCJjaGVja1JDRmlsZUV4aXN0cyIsInJjRmlsZUV4aXN0cyIsImNyZWF0ZVZhY3VvdXNSQ0ZpbGUiLCJzZXRSQ0Jhc2VFeHRlbnNpb24iLCJyY0Jhc2VFeHRlbnNpb24iLCJlbnZpcm9ubWVudHMiLCJmaXJzdEVudmlyb25tZW50IiwiZmluZCIsIm5hbWUiLCJwcm9jZXNzIiwiZW52IiwiYXJndiIsImFyZ3VtZW50IiwibWF0Y2hlcyIsIm1hdGNoIiwiZm91bmQiLCJzZWNvbmRNYXRjaCIsInJlcGxhY2VFbnZpcm9ubWVudFZhcmlhYmxlIiwic3RyaW5nIiwidmFsdWUiLCJzdHJpbmdVcHBlckNhc2UiLCJpc1N0cmluZ1VwcGVyQ2FzZSIsImpzb25BcnJheSIsImlzSlNPTkFycmF5IiwianNvbk9iamVjdCIsImlzSlNPTk9iamVjdCIsImFycmF5IiwibGVuZ3RoIiwiaW5kZXgiLCJqc29uU3RyaW5nIiwiaXNKU09OU3RyaW5nIiwib2JqZWN0IiwiQXJyYXkiLCJqc29uUHJpbWl0aXZlIiwiaXNKU09OUHJpbWl0aXZlIiwiaXNKU09OTnVtYmVyIiwianNvbk51bWJlciIsImlzSlNPTkJvb2xlYW4iLCJqc29uQm9vbGVhbiIsInVwcGVyQ2FzZVN0cmluZyIsInRvVXBwZXJDYXNlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVrQixHQUFvQixDQUFwQixNQUFvQjtBQUNSLEdBQWEsQ0FBYixTQUFhO0FBQ0YsR0FBYyxDQUFkLFVBQWM7QUFDZCxHQUF5QixDQUF6QixXQUF5Qjs7Ozs7Ozs7Ozs7O0FBRTlFLEVBQUUsR0FBR0EsVUFBVSxDQUFDQyxFQUFFLEVBQUUsQ0FBQztJQUNuQkQsVUFBVSxDQUFDQyxFQUFFLEdBQUdDLEdBQUc7QUFDckIsQ0FBQztBQUVELEdBQUssQ0FBR0QsRUFBRSxHQUFLRCxVQUFVLENBQWpCQyxFQUFFO2VBRUssQ0FBQztJQUNkQSxFQUFFLEVBQUZBLEVBQUU7QUFDSixDQUFDOztBQUVELEdBQUcsQ0FBQ0UsYUFBYSxHQWR5QixTQUFhO1NBZ0I5Q0QsR0FBRyxDQUFDRSxlQUFlLEVBQUUsQ0FBQztJQUM3QkEsZUFBZSxHQUFHQSxlQUFlLElBQUlDLHVCQUF1QixNQUFNQyxzQkFBc0IsR0FBSSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFL0YsR0FBRyxDQUFDQyxJQUFJLEdBQUdDLFVBQVU7SUFFckIsR0FBSyxDQUFDQyxXQUFXLEdBQUdDLGVBQWUsQ0FBQ0gsSUFBSSxFQUFFSCxlQUFlO0lBRXpERyxJQUFJLEdBQUdFLFdBQVcsQ0FBRSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFdkJFLDJCQUEyQixDQUFDSixJQUFJO0lBRWhDSyxNQUFN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
|
package/lib/utilities/request.js
CHANGED
|
@@ -28,8 +28,7 @@ function createRequest(host, uri, query, method, headers, callback) {
|
|
|
28
28
|
function createGetRequest(host, uri, query, headers, callback) {
|
|
29
29
|
if (callback === undefined) {
|
|
30
30
|
callback = headers; ///
|
|
31
|
-
headers = {
|
|
32
|
-
};
|
|
31
|
+
headers = {};
|
|
33
32
|
}
|
|
34
33
|
var method = _methods.GET_METHOD, getRequest = createRequest(host, uri, query, method, headers, callback);
|
|
35
34
|
return getRequest;
|
|
@@ -37,8 +36,7 @@ function createGetRequest(host, uri, query, headers, callback) {
|
|
|
37
36
|
function createPostRequest(host, uri, query, headers, callback) {
|
|
38
37
|
if (callback === undefined) {
|
|
39
38
|
callback = headers; ///
|
|
40
|
-
headers = {
|
|
41
|
-
};
|
|
39
|
+
headers = {};
|
|
42
40
|
}
|
|
43
41
|
var method = _methods.POST_METHOD, postRequest = createRequest(host, uri, query, method, headers, callback);
|
|
44
42
|
return postRequest;
|
|
@@ -50,4 +48,4 @@ var _default = {
|
|
|
50
48
|
};
|
|
51
49
|
exports.default = _default;
|
|
52
50
|
|
|
53
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVxdWVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuY29uc3QgaHR0cCA9IHJlcXVpcmUoXCJodHRwXCIpLFxuICAgICAgaHR0cHMgPSByZXF1aXJlKFwiaHR0cHNcIik7XG5cbmltcG9ydCB7IEVSUk9SLCBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHRVRfTUVUSE9ELCBQT1NUX01FVEhPRCB9IGZyb20gXCIuLi9tZXRob2RzXCI7XG5pbXBvcnQgeyBwb3J0RnJvbUhvc3QsIHNlY3VyZUZyb21Ib3N0LCBob3N0bmFtZUZyb21Ib3N0LCBxdWVyeVN0cmluZ0Zyb21RdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvaHR0cFwiO1xuXG5mdW5jdGlvbiBjcmVhdGVSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY2FsbGJhY2spIHtcbiAgY29uc3QgcG9ydCA9IHBvcnRGcm9tSG9zdChob3N0KSxcbiAgICAgICAgc2VjdXJlID0gc2VjdXJlRnJvbUhvc3QoaG9zdCksXG4gICAgICAgIGhvc3RuYW1lID0gaG9zdG5hbWVGcm9tSG9zdChob3N0KSxcbiAgICAgICAgcXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZ0Zyb21RdWVyeShxdWVyeSksXG4gICAgICAgIHBhdGggPSAocXVlcnlTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgICAgICAgICAgICB1cmkgOlxuICAgICAgICAgICAgICAgICAgYCR7dXJpfT8ke3F1ZXJ5U3RyaW5nfWAsXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgaG9zdG5hbWUsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcG9ydCxcbiAgICAgICAgICBwYXRoXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWF0ZVJlcXVlc3QgPSBzZWN1cmUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwcy5yZXF1ZXN0IDogLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cC5yZXF1ZXN0OyAvLy9cblxuICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChvcHRpb25zLCAocmVzcG9uc2UpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvciwgcmVzcG9uc2UpO1xuICB9KTtcblxuICByZXF1ZXN0Lm9uKEVSUk9SLCAoZXJyb3IpID0+
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcmVxdWVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuY29uc3QgaHR0cCA9IHJlcXVpcmUoXCJodHRwXCIpLFxuICAgICAgaHR0cHMgPSByZXF1aXJlKFwiaHR0cHNcIik7XG5cbmltcG9ydCB7IEVSUk9SLCBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHRVRfTUVUSE9ELCBQT1NUX01FVEhPRCB9IGZyb20gXCIuLi9tZXRob2RzXCI7XG5pbXBvcnQgeyBwb3J0RnJvbUhvc3QsIHNlY3VyZUZyb21Ib3N0LCBob3N0bmFtZUZyb21Ib3N0LCBxdWVyeVN0cmluZ0Zyb21RdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvaHR0cFwiO1xuXG5mdW5jdGlvbiBjcmVhdGVSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY2FsbGJhY2spIHtcbiAgY29uc3QgcG9ydCA9IHBvcnRGcm9tSG9zdChob3N0KSxcbiAgICAgICAgc2VjdXJlID0gc2VjdXJlRnJvbUhvc3QoaG9zdCksXG4gICAgICAgIGhvc3RuYW1lID0gaG9zdG5hbWVGcm9tSG9zdChob3N0KSxcbiAgICAgICAgcXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZ0Zyb21RdWVyeShxdWVyeSksXG4gICAgICAgIHBhdGggPSAocXVlcnlTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgICAgICAgICAgICB1cmkgOlxuICAgICAgICAgICAgICAgICAgYCR7dXJpfT8ke3F1ZXJ5U3RyaW5nfWAsXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgaG9zdG5hbWUsXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICBtZXRob2QsXG4gICAgICAgICAgcG9ydCxcbiAgICAgICAgICBwYXRoXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWF0ZVJlcXVlc3QgPSBzZWN1cmUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwcy5yZXF1ZXN0IDogLy8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cC5yZXF1ZXN0OyAvLy9cblxuICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdChvcHRpb25zLCAocmVzcG9uc2UpID0+IHtcbiAgICBjb25zdCBlcnJvciA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvciwgcmVzcG9uc2UpO1xuICB9KTtcblxuICByZXF1ZXN0Lm9uKEVSUk9SLCAoZXJyb3IpID0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IG51bGw7XG5cbiAgICBjYWxsYmFjayhlcnJvciwgcmVzcG9uc2UpO1xuICB9KTtcblxuICByZXR1cm4gcmVxdWVzdDtcbn1cblxuZnVuY3Rpb24gY3JlYXRlR2V0UmVxdWVzdChob3N0LCB1cmksIHF1ZXJ5LCBoZWFkZXJzLCBjYWxsYmFjaykge1xuICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgIGNhbGxiYWNrID0gaGVhZGVyczsgLy8vXG4gICAgaGVhZGVycyA9IHt9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kID0gR0VUX01FVEhPRCxcbiAgICAgICAgZ2V0UmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoaG9zdCwgdXJpLCBxdWVyeSwgbWV0aG9kLCBoZWFkZXJzLCBjYWxsYmFjayk7XG5cbiAgcmV0dXJuIGdldFJlcXVlc3Q7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBvc3RSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIGhlYWRlcnMsIGNhbGxiYWNrKSB7XG4gIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2FsbGJhY2sgPSBoZWFkZXJzOyAvLy9cbiAgICBoZWFkZXJzID0ge307XG4gIH1cblxuICBjb25zdCBtZXRob2QgPSBQT1NUX01FVEhPRCxcbiAgICAgICAgcG9zdFJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KGhvc3QsIHVyaSwgcXVlcnksIG1ldGhvZCwgaGVhZGVycywgY2FsbGJhY2spO1xuXG4gIHJldHVybiBwb3N0UmVxdWVzdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBjcmVhdGVSZXF1ZXN0LFxuICBjcmVhdGVHZXRSZXF1ZXN0LFxuICBjcmVhdGVQb3N0UmVxdWVzdFxufTtcbiJdLCJuYW1lcyI6WyJodHRwIiwicmVxdWlyZSIsImh0dHBzIiwiY3JlYXRlUmVxdWVzdCIsImhvc3QiLCJ1cmkiLCJxdWVyeSIsIm1ldGhvZCIsImhlYWRlcnMiLCJjYWxsYmFjayIsInBvcnQiLCJzZWN1cmUiLCJob3N0bmFtZSIsInF1ZXJ5U3RyaW5nIiwicGF0aCIsIm9wdGlvbnMiLCJyZXF1ZXN0IiwicmVzcG9uc2UiLCJlcnJvciIsIm9uIiwiY3JlYXRlR2V0UmVxdWVzdCIsInVuZGVmaW5lZCIsImdldFJlcXVlc3QiLCJjcmVhdGVQb3N0UmVxdWVzdCIsInBvc3RSZXF1ZXN0Il0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUt3QixHQUFjLENBQWQsVUFBYztBQUNWLEdBQVksQ0FBWixRQUFZO0FBQ2lDLEdBQW1CLENBQW5CLEtBQW1CO0FBTHhHLEdBQUssQ0FBQ0EsSUFBSSxHQUFHQyxPQUFPLENBQUMsQ0FBTSxRQUNyQkMsS0FBSyxHQUFHRCxPQUFPLENBQUMsQ0FBTztTQU1wQkUsYUFBYSxDQUFDQyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFLENBQUM7SUFDbkUsR0FBSyxDQUFDQyxJQUFJLE9BSHlFLEtBQW1CLGVBRzVFTixJQUFJLEdBQ3hCTyxNQUFNLE9BSnVFLEtBQW1CLGlCQUl4RVAsSUFBSSxHQUM1QlEsUUFBUSxPQUxxRSxLQUFtQixtQkFLcEVSLElBQUksR0FDaENTLFdBQVcsT0FOa0UsS0FBbUIsdUJBTTdEUCxLQUFLLEdBQ3hDUSxJQUFJLEdBQUlELFdBQVcsS0FUUyxVQUFjLGdCQVVqQ1IsR0FBRyxHQUNELENBQUEsRUFBU1EsTUFBVyxDQUFsQlIsR0FBRyxFQUFDLENBQUMsSUFBYyxNQUFBLENBQVpRLFdBQVcsR0FDL0JFLE9BQU8sR0FBRyxDQUFDO1FBQ1RILFFBQVEsRUFBUkEsUUFBUTtRQUNSSixPQUFPLEVBQVBBLE9BQU87UUFDUEQsTUFBTSxFQUFOQSxNQUFNO1FBQ05HLElBQUksRUFBSkEsSUFBSTtRQUNKSSxJQUFJLEVBQUpBLElBQUk7SUFDTixDQUFDLEVBQ0RYLGNBQWEsR0FBR1EsTUFBTSxHQUNKVCxLQUFLLENBQUNjLE9BQU8sR0FDWGhCLElBQUksQ0FBQ2dCLE9BQU8sQ0FBRSxDQUFHLEFBQUgsRUFBRyxBQUFILENBQUc7SUFFM0MsR0FBSyxDQUFDQSxPQUFPLEdBQUdiLGNBQWEsQ0FBQ1ksT0FBTyxFQUFFLFFBQVEsQ0FBUEUsUUFBUSxFQUFLLENBQUM7UUFDcEQsR0FBSyxDQUFDQyxLQUFLLEdBQUcsSUFBSTtRQUVsQlQsUUFBUSxDQUFDUyxLQUFLLEVBQUVELFFBQVE7SUFDMUIsQ0FBQztJQUVERCxPQUFPLENBQUNHLEVBQUUsQ0E3QndCLFVBQWMsUUE2QjlCLFFBQVEsQ0FBUEQsS0FBSyxFQUFLLENBQUM7UUFDNUIsR0FBSyxDQUFDRCxRQUFRLEdBQUcsSUFBSTtRQUVyQlIsUUFBUSxDQUFDUyxLQUFLLEVBQUVELFFBQVE7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQ0QsT0FBTztBQUNoQixDQUFDO1NBRVFJLGdCQUFnQixDQUFDaEIsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLEtBQUssRUFBRUUsT0FBTyxFQUFFQyxRQUFRLEVBQUUsQ0FBQztJQUM5RCxFQUFFLEVBQUVBLFFBQVEsS0FBS1ksU0FBUyxFQUFFLENBQUM7UUFDM0JaLFFBQVEsR0FBR0QsT0FBTyxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQUN2QkEsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxHQUFLLENBQUNELE1BQU0sR0EzQzBCLFFBQVksYUE0QzVDZSxVQUFVLEdBQUduQixhQUFhLENBQUNDLElBQUksRUFBRUMsR0FBRyxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxRQUFRO0lBRTVFLE1BQU0sQ0FBQ2EsVUFBVTtBQUNuQixDQUFDO1NBRVFDLGlCQUFpQixDQUFDbkIsSUFBSSxFQUFFQyxHQUFHLEVBQUVDLEtBQUssRUFBRUUsT0FBTyxFQUFFQyxRQUFRLEVBQUUsQ0FBQztJQUMvRCxFQUFFLEVBQUVBLFFBQVEsS0FBS1ksU0FBUyxFQUFFLENBQUM7UUFDM0JaLFFBQVEsR0FBR0QsT0FBTyxDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztRQUN2QkEsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRCxHQUFLLENBQUNELE1BQU0sR0F2RDBCLFFBQVksY0F3RDVDaUIsV0FBVyxHQUFHckIsYUFBYSxDQUFDQyxJQUFJLEVBQUVDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsUUFBUTtJQUU3RSxNQUFNLENBQUNlLFdBQVc7QUFDcEIsQ0FBQztlQUVjLENBQUM7SUFDZHJCLGFBQWEsRUFBYkEsYUFBYTtJQUNiaUIsZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7SUFDaEJHLGlCQUFpQixFQUFqQkEsaUJBQWlCO0FBQ25CLENBQUMifQ==
|
package/package.json
CHANGED
package/src/constants.js
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
export const UTF8 = "utf8";
|
|
4
4
|
export const ERROR = "error";
|
|
5
5
|
export const CTRL_C = "^C";
|
|
6
|
+
export const STRING = "string";
|
|
6
7
|
export const ACCEPT = "accept";
|
|
8
|
+
export const NUMBER = "number";
|
|
9
|
+
export const BOOLEAN = "boolean";
|
|
10
|
+
export const ENVIRONMENT = "ENVIRONMENT";
|
|
7
11
|
export const EMPTY_STRING = "";
|
|
8
12
|
export const CONTENT_TYPE = "content-type";
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { first, second } from "../utilities/array";
|
|
4
4
|
import { DEFAULT_RC_BASE_EXTENSION } from "../defaults";
|
|
5
|
+
import { STRING, NUMBER, BOOLEAN, ENVIRONMENT } from "../constants";
|
|
5
6
|
import { readFile, writeFile, checkFileExists } from "../utilities/fileSystem";
|
|
6
7
|
|
|
7
8
|
if (!globalThis.rc) {
|
|
@@ -16,40 +17,18 @@ export default {
|
|
|
16
17
|
|
|
17
18
|
let baseExtension = DEFAULT_RC_BASE_EXTENSION;
|
|
18
19
|
|
|
19
|
-
function _rc(
|
|
20
|
-
|
|
21
|
-
environmentName,
|
|
22
|
-
environmentNameOrArgvArgv = (environmentNameOrArgv instanceof Array);
|
|
20
|
+
function _rc(environmentName) {
|
|
21
|
+
environmentName = environmentName || environmentNameFromArgv() || environmentNameFromEnv(); ///
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
const argv = environmentNameOrArgv; ///
|
|
26
|
-
|
|
27
|
-
environmentName = environmentNameFromArgv(argv);
|
|
28
|
-
} else {
|
|
29
|
-
environmentName = environmentNameOrArgv; ///
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const json = readRCFile(),
|
|
33
|
-
{ environments } = json;
|
|
34
|
-
|
|
35
|
-
if (environmentName === null) {
|
|
36
|
-
const firstEnvironment = first(environments);
|
|
23
|
+
let json = readRCFile();
|
|
37
24
|
|
|
38
|
-
|
|
39
|
-
} else {
|
|
40
|
-
environment = environments.find((environment) => {
|
|
41
|
-
const { name } = environment,
|
|
42
|
-
found = (name === environmentName);
|
|
25
|
+
const environment = findEnvironment(json, environmentName);
|
|
43
26
|
|
|
44
|
-
|
|
45
|
-
});
|
|
46
|
-
}
|
|
27
|
+
json = environment; ///
|
|
47
28
|
|
|
48
|
-
|
|
29
|
+
replaceEnvironmentVariables(json);
|
|
49
30
|
|
|
50
31
|
Object.assign(rc, environment);
|
|
51
|
-
|
|
52
|
-
return environment;
|
|
53
32
|
}
|
|
54
33
|
|
|
55
34
|
function readRCFile() {
|
|
@@ -109,10 +88,45 @@ Object.assign(_rc, {
|
|
|
109
88
|
setRCBaseExtension
|
|
110
89
|
});
|
|
111
90
|
|
|
112
|
-
function
|
|
91
|
+
function findEnvironment(json, environmentName) {
|
|
92
|
+
let environment;
|
|
93
|
+
const { environments } = json;
|
|
94
|
+
|
|
95
|
+
if (environmentName === null) {
|
|
96
|
+
const firstEnvironment = first(environments);
|
|
97
|
+
|
|
98
|
+
environment = firstEnvironment; ///
|
|
99
|
+
} else {
|
|
100
|
+
environment = environments.find((environment) => {
|
|
101
|
+
const { name } = environment;
|
|
102
|
+
|
|
103
|
+
if(name === environmentName) {
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
delete environment.name
|
|
110
|
+
|
|
111
|
+
return environment;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function rcFilePathFromNothing() {
|
|
115
|
+
const rcFilePath = `./.${baseExtension}rc`;
|
|
116
|
+
|
|
117
|
+
return rcFilePath;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function environmentNameFromEnv() {
|
|
121
|
+
const environmentName = process.env[ENVIRONMENT] || null;
|
|
122
|
+
|
|
123
|
+
return environmentName;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function environmentNameFromArgv() {
|
|
113
127
|
let environmentName = null;
|
|
114
128
|
|
|
115
|
-
argv.find((argument) => { ///
|
|
129
|
+
process.argv.find((argument) => { ///
|
|
116
130
|
const matches = argument.match(/--environment=(.+)/),
|
|
117
131
|
found = (matches !== null);
|
|
118
132
|
|
|
@@ -128,8 +142,110 @@ function environmentNameFromArgv(argv) {
|
|
|
128
142
|
return environmentName;
|
|
129
143
|
}
|
|
130
144
|
|
|
131
|
-
function
|
|
132
|
-
|
|
145
|
+
function replaceEnvironmentVariable(string) {
|
|
146
|
+
let value = null;
|
|
133
147
|
|
|
134
|
-
|
|
148
|
+
const stringUpperCase = isStringUpperCase(string);
|
|
149
|
+
|
|
150
|
+
if (stringUpperCase) {
|
|
151
|
+
const name = string; ///
|
|
152
|
+
|
|
153
|
+
value = process.env[name] || null;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return value;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function replaceEnvironmentVariables(environment) {
|
|
160
|
+
let json = environment;
|
|
161
|
+
|
|
162
|
+
const jsonArray = isJSONArray(json),
|
|
163
|
+
jsonObject = isJSONObject(json);
|
|
164
|
+
|
|
165
|
+
if (false) {
|
|
166
|
+
///
|
|
167
|
+
} else if (jsonArray) {
|
|
168
|
+
const array = json,
|
|
169
|
+
length = array.length;
|
|
170
|
+
|
|
171
|
+
for (let index = 0; index < length; index++) {
|
|
172
|
+
const json = array[index],
|
|
173
|
+
jsonString = isJSONString(json);
|
|
174
|
+
|
|
175
|
+
if (jsonString) {
|
|
176
|
+
const string = json,
|
|
177
|
+
value = replaceEnvironmentVariable(string);
|
|
178
|
+
|
|
179
|
+
if (value !== null) {
|
|
180
|
+
array[index] = value;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
} else if (jsonObject) {
|
|
185
|
+
const object = json; ///
|
|
186
|
+
|
|
187
|
+
for (let name in object) {
|
|
188
|
+
const json = object[name],
|
|
189
|
+
jsonString = isJSONString(json);
|
|
190
|
+
|
|
191
|
+
if (jsonString) {
|
|
192
|
+
const string = json, ///
|
|
193
|
+
value = replaceEnvironmentVariable(string); ///
|
|
194
|
+
|
|
195
|
+
if (value !== null) {
|
|
196
|
+
object[name] = value;
|
|
197
|
+
}
|
|
198
|
+
} else {
|
|
199
|
+
replaceEnvironmentVariables(json);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
function isJSONArray(json) {
|
|
206
|
+
const jsonArray = (json instanceof Array);
|
|
207
|
+
|
|
208
|
+
return jsonArray;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
function isJSONObject(json) {
|
|
212
|
+
const jsonArray = isJSONArray(json),
|
|
213
|
+
jsonPrimitive = isJSONPrimitive(json),
|
|
214
|
+
jsonObject = (!jsonArray && ! jsonPrimitive);
|
|
215
|
+
|
|
216
|
+
return jsonObject;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
function isJSONString(json) {
|
|
220
|
+
const jsonString = (typeof json === STRING);
|
|
221
|
+
|
|
222
|
+
return jsonString;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
function isJSONNumber(json) {
|
|
226
|
+
const jsonNumber = (typeof json === NUMBER);
|
|
227
|
+
|
|
228
|
+
return jsonNumber;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function isJSONBoolean(json) {
|
|
232
|
+
const jsonBoolean = (typeof json === BOOLEAN);
|
|
233
|
+
|
|
234
|
+
return jsonBoolean;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function isJSONPrimitive(json) {
|
|
238
|
+
const jsonString = isJSONString(json),
|
|
239
|
+
jsonNumber = isJSONNumber(json),
|
|
240
|
+
jsonBoolean = isJSONBoolean(json),
|
|
241
|
+
jsonPrimitive = (jsonString || jsonNumber || jsonBoolean);
|
|
242
|
+
|
|
243
|
+
return jsonPrimitive;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
function isStringUpperCase(string) {
|
|
247
|
+
const upperCaseString = string.toUpperCase(),
|
|
248
|
+
stringUpperCase = (string === upperCaseString);
|
|
249
|
+
|
|
250
|
+
return stringUpperCase;
|
|
135
251
|
}
|