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(',') const allPorts = ports.split(',')
return allPorts.map((portString) => { return allPorts.map((untypedPort) => {
const exposedFragments = portString.trim().split('->') const exposedFragments = untypedPort.trim().split('->')
const [port, protocol] = const [port, protocol] =
exposedFragments.length === 1 exposedFragments.length === 1
? exposedFragments[0].split('/') ? exposedFragments[0].split('/')
: exposedFragments[1].split('/') : exposedFragments[1].split('/')
const [address, mappedPort] = const [address, mappedPort] =
exposedFragments.length === 2 ? exposedFragments[0].split(':') : [] exposedFragments.length === 2 ? exposedFragments[0].split(':') : []
const result = { return {
exposed: { port: Number(port), protocol }, exposed: { port: Number(port), protocol },
...(address && ...(address &&
mappedPort && { mapped: { port: Number(mappedPort), address } }) mappedPort && { mapped: { port: Number(mappedPort), address } })
} }
return result
}) })
})()
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,}/
) )