navy
Version:
Quick and powerful development environments using Docker and Docker Compose
24 lines (23 loc) • 882 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _lodash = require("lodash");
function getPortConfig(serviceName, state) {
return state.services[serviceName] ? state.services[serviceName]._ports || {} : {};
}
var _default = (config, state) => ({
...config,
services: (0, _lodash.mapValues)(config.services, (service, serviceName) => {
const portConfig = getPortConfig(serviceName, state);
const internalPorts = Object.keys(portConfig).filter(internal => !!portConfig[internal]);
const inheritedPorts = service.ports ? service.ports.filter(port => internalPorts.indexOf(port) === -1) : [];
return {
...service,
ports: [...inheritedPorts, ...internalPorts.map(internal => `${portConfig[internal]}:${internal}`)]
};
})
});
exports.default = _default;
module.exports = exports.default;