refactor: replace if by ternary, improve variable naming

This commit is contained in:
Alexander Zeitler 2021-04-11 19:10:47 +02:00
parent 880d2522b5
commit 3be99e8360

View file

@ -80,29 +80,32 @@ export const mapPorts = (
mapped?: { address: string; port: number } mapped?: { address: string; port: number }
exposed: { port: number; protocol: string } exposed: { port: number; protocol: string }
}> => { }> => {
if (!ports) return [] const result = !ports
const allPorts = ports.split(',') ? []
return allPorts.map((portString) => { : (() => {
const exposedFragments = portString.trim().split('->') const allPorts = ports.split(',')
const [port, protocol] = return allPorts.map((untypedPort) => {
exposedFragments.length === 1 const exposedFragments = untypedPort.trim().split('->')
? exposedFragments[0].split('/') const [port, protocol] =
: exposedFragments[1].split('/') exposedFragments.length === 1
const [address, mappedPort] = ? exposedFragments[0].split('/')
exposedFragments.length === 2 ? exposedFragments[0].split(':') : [] : exposedFragments[1].split('/')
const result = { const [address, mappedPort] =
exposed: { port: Number(port), protocol }, exposedFragments.length === 2 ? exposedFragments[0].split(':') : []
...(address && return {
mappedPort && { mapped: { port: Number(mappedPort), address } }) exposed: { port: Number(port), protocol },
} ...(address &&
return result mappedPort && { mapped: { port: Number(mappedPort), address } })
}) }
})
})()
return result
} }
export const mapPsOutput = (output: string): DockerComposePsResult => { export const mapPsOutput = (output: string): DockerComposePsResult => {
const lines = output.split(`\n`).filter(nonEmptyString) const allLines = output.split(`\n`).filter(nonEmptyString)
const lines2 = lines.filter((line, index) => index > 1) const linesWithServices = allLines.filter((_, index) => index > 1)
const services = lines2.map((line) => { const services = linesWithServices.map((line) => {
const [nameString, commandString, stateString, allPortsString] = line.split( const [nameString, commandString, stateString, allPortsString] = line.split(
/\s{3,}/ /\s{3,}/
) )