navy 4.1.2-rc.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/lib/cli/config/index.js +57 -241
  2. package/lib/cli/config/wrapper.js +12 -36
  3. package/lib/cli/develop.js +63 -167
  4. package/lib/cli/doctor/clean-compose-files.js +19 -73
  5. package/lib/cli/doctor/index.js +34 -154
  6. package/lib/cli/doctor/invalid-compose-config.js +20 -110
  7. package/lib/cli/doctor/invalid-state.js +22 -115
  8. package/lib/cli/doctor/util.js +26 -93
  9. package/lib/cli/external-ip.js +9 -39
  10. package/lib/cli/health.js +18 -67
  11. package/lib/cli/https.js +92 -0
  12. package/lib/cli/import.js +22 -59
  13. package/lib/cli/index.js +11 -17
  14. package/lib/cli/lan-ip.js +18 -60
  15. package/lib/cli/launch.js +46 -127
  16. package/lib/cli/live.js +37 -111
  17. package/lib/cli/local-ip.js +16 -53
  18. package/lib/cli/logs.js +7 -35
  19. package/lib/cli/open.js +11 -45
  20. package/lib/cli/program.js +145 -167
  21. package/lib/cli/ps.js +36 -105
  22. package/lib/cli/refresh-config.js +18 -62
  23. package/lib/cli/run.js +8 -39
  24. package/lib/cli/status.js +41 -201
  25. package/lib/cli/updates.js +68 -160
  26. package/lib/cli/util/get-or-initialise-navy.js +14 -57
  27. package/lib/cli/util/import.js +33 -83
  28. package/lib/cli/util/index.js +10 -12
  29. package/lib/cli/util/reconfigure.js +12 -102
  30. package/lib/cli/wait-for-healthy.js +53 -100
  31. package/lib/config-provider.js +25 -127
  32. package/lib/config-providers/filesystem/index.js +58 -235
  33. package/lib/config-providers/npm/__tests__/util.js +3 -6
  34. package/lib/config-providers/npm/index.js +60 -231
  35. package/lib/config-providers/npm/util.js +6 -9
  36. package/lib/config.js +39 -76
  37. package/lib/driver-logging.js +23 -28
  38. package/lib/driver.js +5 -7
  39. package/lib/drivers/docker-compose/client.js +64 -172
  40. package/lib/drivers/docker-compose/index.js +153 -464
  41. package/lib/errors.js +27 -61
  42. package/lib/http-proxy.js +72 -158
  43. package/lib/index.js +26 -29
  44. package/lib/middleware/add-service-proxy-config.js +76 -0
  45. package/lib/middleware/develop.js +9 -23
  46. package/lib/middleware/helpers.js +20 -25
  47. package/lib/middleware/port-override.js +15 -37
  48. package/lib/middleware/set-env-vars.js +14 -18
  49. package/lib/middleware/set-image.js +12 -18
  50. package/lib/middleware/set-logging-driver.js +14 -18
  51. package/lib/middleware/tag-override.js +11 -19
  52. package/lib/navy/default-middleware.js +13 -27
  53. package/lib/navy/index.js +438 -1761
  54. package/lib/navy/middleware.js +15 -100
  55. package/lib/navy/plugin-interface.js +28 -108
  56. package/lib/navy/state.js +58 -147
  57. package/lib/navy/util.js +2 -1
  58. package/lib/service.js +5 -3
  59. package/lib/util/__tests__/external-ip.js +20 -96
  60. package/lib/util/__tests__/registry-client.js +11 -24
  61. package/lib/util/__tests__/service-host.js +19 -116
  62. package/lib/util/docker-client.js +10 -13
  63. package/lib/util/exec-async.js +9 -27
  64. package/lib/util/external-ip.js +48 -126
  65. package/lib/util/fs.js +7 -6
  66. package/lib/util/get-lan-ip.js +15 -52
  67. package/lib/util/has-update.js +23 -73
  68. package/lib/util/https.js +213 -0
  69. package/lib/util/navyrc.js +12 -50
  70. package/lib/util/registry-client.js +41 -112
  71. package/lib/util/service-host.js +40 -129
  72. package/lib/util/table.js +11 -21
  73. package/package.json +14 -14
  74. package/LICENSE +0 -21
  75. package/lib/middleware/add-virtual-hosts.js +0 -147
package/lib/errors.js CHANGED
@@ -1,76 +1,42 @@
1
- 'use strict';
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
4
 
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports.NavyNotInitialisedError = exports.NavyError = undefined;
7
-
8
- var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
9
-
10
- var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
11
-
12
- var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
13
-
14
- var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
15
-
16
- var _get2 = require('babel-runtime/helpers/get');
17
-
18
- var _get3 = _interopRequireDefault(_get2);
19
-
20
- var _inherits2 = require('babel-runtime/helpers/inherits');
21
-
22
- var _inherits3 = _interopRequireDefault(_inherits2);
8
+ exports.NavyNotInitialisedError = exports.NavyError = void 0;
23
9
 
24
- var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
10
+ var _chalk = _interopRequireDefault(require("chalk"));
25
11
 
26
- var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
27
-
28
- var _createClass2 = require('babel-runtime/helpers/createClass');
29
-
30
- var _createClass3 = _interopRequireDefault(_createClass2);
31
-
32
- var _chalk = require('chalk');
12
+ class NavyError {
13
+ constructor(message) {
14
+ this.message = message;
15
+ }
33
16
 
34
- var _chalk2 = _interopRequireDefault(_chalk);
17
+ prettyPrint() {
18
+ console.log();
19
+ console.log(_chalk.default.bgRed(_chalk.default.bold(' ERROR ')));
20
+ console.log();
21
+ console.log(' ' + this.message);
22
+ console.log();
23
+ }
35
24
 
36
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+ }
37
26
 
38
- var NavyError = exports.NavyError = function () {
39
- function NavyError(message) {
40
- (0, _classCallCheck3.default)(this, NavyError);
27
+ exports.NavyError = NavyError;
41
28
 
42
- this.message = message;
29
+ class NavyNotInitialisedError extends NavyError {
30
+ constructor(navyName) {
31
+ super('Navy "' + navyName + '" not imported');
43
32
  }
44
33
 
45
- (0, _createClass3.default)(NavyError, [{
46
- key: 'prettyPrint',
47
- value: function prettyPrint() {
48
- console.log();
49
- console.log(_chalk2.default.bgRed(_chalk2.default.bold(' ERROR ')));
50
- console.log();
51
- console.log(' ' + this.message);
52
- console.log();
53
- }
54
- }]);
55
- return NavyError;
56
- }();
57
-
58
- var NavyNotInitialisedError = exports.NavyNotInitialisedError = function (_NavyError) {
59
- (0, _inherits3.default)(NavyNotInitialisedError, _NavyError);
60
-
61
- function NavyNotInitialisedError(navyName) {
62
- (0, _classCallCheck3.default)(this, NavyNotInitialisedError);
63
- return (0, _possibleConstructorReturn3.default)(this, (NavyNotInitialisedError.__proto__ || (0, _getPrototypeOf2.default)(NavyNotInitialisedError)).call(this, 'Navy "' + navyName + '" not imported'));
34
+ prettyPrint() {
35
+ super.prettyPrint();
36
+ console.log(' Make sure you\'ve imported the navy with ' + _chalk.default.bold('navy import'));
37
+ console.log();
64
38
  }
65
39
 
66
- (0, _createClass3.default)(NavyNotInitialisedError, [{
67
- key: 'prettyPrint',
68
- value: function prettyPrint() {
69
- (0, _get3.default)(NavyNotInitialisedError.prototype.__proto__ || (0, _getPrototypeOf2.default)(NavyNotInitialisedError.prototype), 'prettyPrint', this).call(this);
40
+ }
70
41
 
71
- console.log(' Make sure you\'ve imported the navy with ' + _chalk2.default.bold('navy import'));
72
- console.log();
73
- }
74
- }]);
75
- return NavyNotInitialisedError;
76
- }(NavyError);
42
+ exports.NavyNotInitialisedError = NavyNotInitialisedError;
package/lib/http-proxy.js CHANGED
@@ -1,173 +1,87 @@
1
- 'use strict';
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
4
 
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports.reconfigureHTTPProxy = undefined;
7
-
8
- var _regenerator = require('babel-runtime/regenerator');
9
-
10
- var _regenerator2 = _interopRequireDefault(_regenerator);
11
-
12
- var _getIterator2 = require('babel-runtime/core-js/get-iterator');
13
-
14
- var _getIterator3 = _interopRequireDefault(_getIterator2);
15
-
16
- var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
17
-
18
- var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
19
-
20
- var updateComposeConfig = function () {
21
- var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(navies) {
22
- var networks, networksConfig, config;
23
- return _regenerator2.default.wrap(function _callee$(_context) {
24
- while (1) {
25
- switch (_context.prev = _context.next) {
26
- case 0:
27
- _context.next = 2;
28
- return _dockerClient2.default.listNetworks().filter(function (net) {
29
- return net.Name.indexOf('_') !== -1;
30
- }) // is docker-compose network?
31
- .filter(function (net) {
32
- var _iteratorNormalCompletion = true;
33
- var _didIteratorError = false;
34
- var _iteratorError = undefined;
35
-
36
- try {
37
- for (var _iterator = (0, _getIterator3.default)(navies), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
38
- var navy = _step.value;
39
-
40
- if (net.Name.indexOf(navy + '_') === 0) {
41
- return true;
42
- }
43
- }
44
- } catch (err) {
45
- _didIteratorError = true;
46
- _iteratorError = err;
47
- } finally {
48
- try {
49
- if (!_iteratorNormalCompletion && _iterator.return) {
50
- _iterator.return();
51
- }
52
- } finally {
53
- if (_didIteratorError) {
54
- throw _iteratorError;
55
- }
56
- }
57
- }
58
-
59
- return false;
60
- });
61
-
62
- case 2:
63
- networks = _context.sent;
64
- networksConfig = {};
65
-
66
-
67
- networks.forEach(function (net) {
68
- return networksConfig[net.Name] = {
69
- external: true
70
- };
71
- });
72
-
73
- config = {
74
- version: '2',
75
-
76
- services: {
77
- 'nginx-proxy': {
78
- image: 'navycloud/navy-proxy',
79
- ports: ['80:80'],
80
- networks: networks.map(function (net) {
81
- return net.Name;
82
- }),
83
- volumes: ['/var/run/docker.sock:/tmp/docker.sock:ro'],
84
- restart: 'always'
85
- }
86
- },
87
-
88
- networks: networksConfig
89
- };
90
- _context.next = 8;
91
- return _fs2.default.writeFileAsync(_path2.default.join(_os2.default.tmpdir(), 'navyinternaldockercompose.yml'), _jsYaml2.default.dump(config));
92
-
93
- case 8:
94
- case 'end':
95
- return _context.stop();
96
- }
97
- }
98
- }, _callee, this);
99
- }));
100
-
101
- return function updateComposeConfig(_x) {
102
- return _ref.apply(this, arguments);
103
- };
104
- }();
105
-
106
- var reconfigureHTTPProxy = exports.reconfigureHTTPProxy = function () {
107
- var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {
108
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
109
- return _regenerator2.default.wrap(function _callee2$(_context2) {
110
- while (1) {
111
- switch (_context2.prev = _context2.next) {
112
- case 0:
113
- if (opts.navies) {
114
- _context2.next = 4;
115
- break;
116
- }
117
-
118
- _context2.next = 3;
119
- return (0, _navy.getLaunchedNavyNames)();
120
-
121
- case 3:
122
- opts.navies = _context2.sent;
123
-
124
- case 4:
125
- _context2.next = 6;
126
- return updateComposeConfig(opts.navies);
127
-
128
- case 6:
129
-
130
- (0, _driverLogging.log)('Configuring HTTP proxy...');
131
- _context2.next = 9;
132
- return (0, _execAsync.execAsync)('docker-compose', ['-f', _path2.default.join(_os2.default.tmpdir(), 'navyinternaldockercompose.yml'), '-p', 'navyinternal', 'up', '-d']);
133
-
134
- case 9:
135
- case 'end':
136
- return _context2.stop();
137
- }
138
- }
139
- }, _callee2, this);
140
- }));
141
-
142
- return function reconfigureHTTPProxy() {
143
- return _ref2.apply(this, arguments);
144
- };
145
- }();
8
+ exports.reconfigureHTTPProxy = reconfigureHTTPProxy;
146
9
 
147
- var _os = require('os');
10
+ var _os = _interopRequireDefault(require("os"));
148
11
 
149
- var _os2 = _interopRequireDefault(_os);
12
+ var _path = _interopRequireDefault(require("path"));
150
13
 
151
- var _path = require('path');
14
+ var _jsYaml = _interopRequireDefault(require("js-yaml"));
152
15
 
153
- var _path2 = _interopRequireDefault(_path);
16
+ var _dockerClient = _interopRequireDefault(require("./util/docker-client"));
154
17
 
155
- var _jsYaml = require('js-yaml');
18
+ var _fs = _interopRequireDefault(require("fs"));
156
19
 
157
- var _jsYaml2 = _interopRequireDefault(_jsYaml);
20
+ var _https = require("./util/https");
158
21
 
159
- var _dockerClient = require('./util/docker-client');
22
+ var _execAsync = require("./util/exec-async");
160
23
 
161
- var _dockerClient2 = _interopRequireDefault(_dockerClient);
24
+ var _driverLogging = require("./driver-logging");
162
25
 
163
- var _fs = require('./util/fs');
26
+ var _navy = require("./navy");
164
27
 
165
- var _fs2 = _interopRequireDefault(_fs);
166
-
167
- var _execAsync = require('./util/exec-async');
168
-
169
- var _driverLogging = require('./driver-logging');
170
-
171
- var _navy = require('./navy');
28
+ async function updateComposeConfig(navies) {
29
+ const networks = await _dockerClient.default.listNetworks().filter(net => net.Name.indexOf('_') !== -1) // is docker-compose network?
30
+ .filter(net => {
31
+ for (const navy of navies) {
32
+ if (net.Name.indexOf(navy + '_') === 0) {
33
+ return true;
34
+ }
35
+ }
36
+
37
+ return false;
38
+ });
39
+ const networksConfig = {};
40
+ networks.forEach(net => networksConfig[net.Name] = {
41
+ external: true
42
+ });
43
+ const ports = ['80:80'];
44
+ const volumes = ['/var/run/docker.sock:/tmp/docker.sock:ro']; // Enable HTTPS for services that
45
+ // match crt file names in tlsRootCaDir
46
+
47
+ const certsPath = await (0, _https.getCertsPath)(true);
48
+
49
+ if (certsPath) {
50
+ ports.push('443:443');
51
+ volumes.push(`${certsPath}:/etc/nginx/certs`);
52
+ volumes.push(`${certsPath}:/etc/nginx/dhparam`); // to persist DH params
53
+ }
54
+
55
+ const config = {
56
+ version: '2',
57
+ services: {
58
+ 'nginx-proxy': {
59
+ image: 'navycloud/navy-proxy',
60
+ ports,
61
+ networks: networks.map(net => net.Name),
62
+ volumes,
63
+ restart: 'always'
64
+ }
65
+ },
66
+ networks: networksConfig
67
+ };
172
68
 
173
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
69
+ _fs.default.writeFileSync(_path.default.join(_os.default.tmpdir(), 'navyinternaldockercompose.yml'), _jsYaml.default.dump(config));
70
+ }
71
+
72
+ async function reconfigureHTTPProxy(opts = {}) {
73
+ const navyInternalYamlFile = _path.default.join(_os.default.tmpdir(), 'navyinternaldockercompose.yml');
74
+
75
+ if (opts.restart) {
76
+ // proxy needs to be recreated to detect changes (deletes) in /etc/nginx/certs
77
+ if (_fs.default.existsSync(navyInternalYamlFile)) {
78
+ (0, _driverLogging.log)('Restarting HTTP proxy...');
79
+ await (0, _execAsync.execAsync)('docker-compose', ['-f', navyInternalYamlFile, '-p', 'navyinternal', 'rm', '-s', '-f', 'nginx-proxy']);
80
+ }
81
+ }
82
+
83
+ if (!opts.navies) opts.navies = await (0, _navy.getLaunchedNavyNames)();
84
+ await updateComposeConfig(opts.navies);
85
+ (0, _driverLogging.log)('Configuring HTTP proxy...');
86
+ await (0, _execAsync.execAsync)('docker-compose', ['-f', navyInternalYamlFile, '-p', 'navyinternal', 'up', '-d']);
87
+ }
package/lib/index.js CHANGED
@@ -1,59 +1,56 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.middlewareHelpers = exports.NavyError = exports.Service = exports.getLaunchedNavyNames = exports.getLaunchedNavies = exports.getNavy = exports.Navy = undefined;
7
-
8
- var _navy = require('./navy');
9
-
10
- Object.defineProperty(exports, 'Navy', {
6
+ Object.defineProperty(exports, "Navy", {
11
7
  enumerable: true,
12
- get: function get() {
8
+ get: function () {
13
9
  return _navy.Navy;
14
10
  }
15
11
  });
16
- Object.defineProperty(exports, 'getNavy', {
12
+ Object.defineProperty(exports, "NavyError", {
17
13
  enumerable: true,
18
- get: function get() {
19
- return _navy.getNavy;
14
+ get: function () {
15
+ return _errors.NavyError;
20
16
  }
21
17
  });
22
- Object.defineProperty(exports, 'getLaunchedNavies', {
18
+ exports.Service = void 0;
19
+ Object.defineProperty(exports, "getLaunchedNavies", {
23
20
  enumerable: true,
24
- get: function get() {
21
+ get: function () {
25
22
  return _navy.getLaunchedNavies;
26
23
  }
27
24
  });
28
- Object.defineProperty(exports, 'getLaunchedNavyNames', {
25
+ Object.defineProperty(exports, "getLaunchedNavyNames", {
29
26
  enumerable: true,
30
- get: function get() {
27
+ get: function () {
31
28
  return _navy.getLaunchedNavyNames;
32
29
  }
33
30
  });
34
-
35
- var _errors = require('./errors');
36
-
37
- Object.defineProperty(exports, 'NavyError', {
31
+ Object.defineProperty(exports, "getNavy", {
38
32
  enumerable: true,
39
- get: function get() {
40
- return _errors.NavyError;
33
+ get: function () {
34
+ return _navy.getNavy;
41
35
  }
42
36
  });
43
-
44
- var _helpers = require('./middleware/helpers');
45
-
46
- Object.defineProperty(exports, 'middlewareHelpers', {
37
+ Object.defineProperty(exports, "middlewareHelpers", {
47
38
  enumerable: true,
48
- get: function get() {
39
+ get: function () {
49
40
  return _helpers.middlewareHelpers;
50
41
  }
51
42
  });
52
43
 
53
- var _service = require('./service');
44
+ var _navy = require("./navy");
45
+
46
+ var _Service = _interopRequireWildcard(require("./service"));
47
+
48
+ exports.Service = _Service;
49
+
50
+ var _errors = require("./errors");
54
51
 
55
- var _Service = _interopRequireWildcard(_service);
52
+ var _helpers = require("./middleware/helpers");
56
53
 
57
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
54
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
58
55
 
59
- exports.Service = _Service;
56
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _lodash = require("lodash");
9
+
10
+ var _serviceHost = require("../util/service-host");
11
+
12
+ var _https = require("../util/https");
13
+
14
+ const getServiceHTTPProxyConfig = (serviceName, navyFile) => {
15
+ if (navyFile && navyFile.httpProxy && navyFile.httpProxy[serviceName]) {
16
+ return navyFile.httpProxy[serviceName];
17
+ }
18
+
19
+ return null;
20
+ };
21
+
22
+ const serviceGetAutoProxyPortOr80 = (service, navyFile) => {
23
+ const autoPorts = navyFile && Array.isArray(navyFile.httpProxyAutoPorts) && navyFile.httpProxyAutoPorts || ['80'];
24
+ return service.ports && (0, _lodash.find)(autoPorts, autoPort => {
25
+ const autoPortString = autoPort.toString();
26
+ return (0, _lodash.find)(service.ports, portDefinition => {
27
+ // In older versions of Docker Compose `ports` could just be an array of string/number,
28
+ // but it's changed to e.g. {target: "80"}
29
+ const port = typeof portDefinition === 'object' && 'target' in portDefinition ? portDefinition.target : portDefinition;
30
+ const portString = port.toString();
31
+ return portString === autoPortString || portString.startsWith(`${autoPortString}:`) || portString.startsWith(`${autoPortString}/`);
32
+ });
33
+ });
34
+ };
35
+
36
+ var _default = navy => async (config, state) => {
37
+ const navyFile = await navy.getNavyFile();
38
+ const services = {};
39
+ const externalIP = await navy.externalIP();
40
+ await Promise.all(Object.keys(config.services).map(async serviceName => {
41
+ const service = config.services[serviceName];
42
+ let proxyConfig = getServiceHTTPProxyConfig(serviceName, navyFile); // proxy port 80 even without service config, or a different port with config httpProxyAutoPorts
43
+
44
+ if (!proxyConfig) {
45
+ const autoPort = serviceGetAutoProxyPortOr80(service, navyFile);
46
+
47
+ if (autoPort) {
48
+ proxyConfig = {
49
+ port: parseInt(autoPort)
50
+ };
51
+ }
52
+ }
53
+
54
+ if (proxyConfig) {
55
+ const hostName = await (0, _serviceHost.createHostForService)(serviceName, navy.normalisedName, externalIP);
56
+ if (proxyConfig.enableHttps) await (0, _https.createCert)({
57
+ hostName
58
+ });
59
+ return services[serviceName] = { ...service,
60
+ environment: {
61
+ 'VIRTUAL_HOST': hostName,
62
+ 'VIRTUAL_PORT': proxyConfig.port,
63
+ ...service.environment
64
+ }
65
+ };
66
+ }
67
+
68
+ return services[serviceName] = service;
69
+ }));
70
+ return { ...config,
71
+ services
72
+ };
73
+ };
74
+
75
+ exports.default = _default;
76
+ module.exports = exports.default;
@@ -1,37 +1,23 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.default = void 0;
6
7
 
7
- var _keys = require('babel-runtime/core-js/object/keys');
8
-
9
- var _keys2 = _interopRequireDefault(_keys);
10
-
11
- var _extends2 = require('babel-runtime/helpers/extends');
12
-
13
- var _extends3 = _interopRequireDefault(_extends2);
14
-
15
- var _helpers = require('./helpers');
16
-
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ var _helpers = require("./helpers");
18
9
 
19
10
  function rewriteService(service, serviceName, serviceState) {
20
11
  if (!serviceState || !serviceState._develop) return service;
21
-
22
- var _serviceState = serviceState;
23
-
24
- return (0, _extends3.default)({}, service, {
12
+ const _serviceState = serviceState;
13
+ return { ...service,
25
14
  stdin_open: true,
26
- volumes: _helpers.middlewareHelpers.addVolumes(service, (0, _keys2.default)(serviceState._develop.mounts).map(function (local) {
27
- return local + ':' + _serviceState._develop.mounts[local];
28
- })),
15
+ volumes: _helpers.middlewareHelpers.addVolumes(service, Object.keys(serviceState._develop.mounts).map(local => `${local}:${_serviceState._develop.mounts[local]}`)),
29
16
  command: serviceState._develop.command ? serviceState._develop.command : service.command
30
- });
17
+ };
31
18
  }
32
19
 
33
- exports.default = function (config, state) {
34
- return _helpers.middlewareHelpers.rewriteServicesWithState(config, state, rewriteService);
35
- };
20
+ var _default = (config, state) => _helpers.middlewareHelpers.rewriteServicesWithState(config, state, rewriteService);
36
21
 
22
+ exports.default = _default;
37
23
  module.exports = exports.default;
@@ -1,42 +1,37 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.middlewareHelpers = undefined;
6
+ exports.middlewareHelpers = void 0;
7
7
 
8
- var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
8
+ var _lodash = require("lodash");
9
9
 
10
- var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
11
-
12
- var _extends2 = require('babel-runtime/helpers/extends');
13
-
14
- var _extends3 = _interopRequireDefault(_extends2);
15
-
16
- var _lodash = require('lodash');
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- var middlewareHelpers = exports.middlewareHelpers = {
21
- rewriteServices: function rewriteServices(config, serviceMapperFn) {
22
- return (0, _extends3.default)({}, config, {
10
+ const middlewareHelpers = {
11
+ rewriteServices(config, serviceMapperFn) {
12
+ return { ...config,
23
13
  services: (0, _lodash.mapValues)(config.services || {}, serviceMapperFn)
24
- });
14
+ };
25
15
  },
26
- rewriteServicesWithState: function rewriteServicesWithState(config, state, serviceMapperFn) {
27
- var normalisedState = state || { services: {} };
16
+
17
+ rewriteServicesWithState(config, state, serviceMapperFn) {
18
+ const normalisedState = state || {
19
+ services: {}
20
+ };
28
21
 
29
22
  function mapperFn(service, serviceName) {
30
23
  return serviceMapperFn(service, serviceName, normalisedState.services[serviceName]);
31
24
  }
32
25
 
33
- return (0, _extends3.default)({}, config, {
26
+ return { ...config,
34
27
  services: (0, _lodash.mapValues)(config.services || {}, mapperFn)
35
- });
28
+ };
36
29
  },
37
- addVolumes: function addVolumes(service, volumes) {
38
- var normalisedVolumes = service.volumes || [];
39
30
 
40
- return [].concat((0, _toConsumableArray3.default)(normalisedVolumes), (0, _toConsumableArray3.default)(volumes));
31
+ addVolumes(service, volumes) {
32
+ const normalisedVolumes = service.volumes || [];
33
+ return [...normalisedVolumes, ...volumes];
41
34
  }
42
- };
35
+
36
+ };
37
+ exports.middlewareHelpers = middlewareHelpers;