navy
Version:
Quick and powerful development environments using Docker and Docker Compose
27 lines (22 loc) • 950 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 hasPortConfig = !!portConfig;
const internalPorts = Object.keys(portConfig).filter(internal => !!portConfig[internal]);
const inheritedPorts = service.ports ? service.ports.filter(port => internalPorts.indexOf(port) === -1) : [];
return { ...service,
ports: hasPortConfig ? [...inheritedPorts, ...internalPorts.map(internal => `${portConfig[internal]}:${internal}`)] : service.ports
};
})
});
exports.default = _default;
module.exports = exports.default;