github.com/hernad/nomad@v1.6.112/ui/app/utils/ip-parts.js (about)

     1  /**
     2   * Copyright (c) HashiCorp, Inc.
     3   * SPDX-License-Identifier: MPL-2.0
     4   */
     5  
     6  // Splits any IP address into an address and a port
     7  export default function ipParts(ip) {
     8    const parts = ip ? ip.split(':') : [];
     9    if (parts.length === 0) {
    10      // ipv4, no port
    11      return { address: ip, port: undefined };
    12    } else if (parts.length === 2) {
    13      // ipv4, with port
    14      return { address: parts[0], port: parts[1] };
    15    } else if (ip.startsWith('[')) {
    16      // ipv6, with port
    17      return {
    18        address: parts.slice(0, parts.length - 1).join(':'),
    19        port: parts[parts.length - 1],
    20      };
    21    } else {
    22      // ipv6, no port
    23      return { address: ip, port: undefined };
    24    }
    25  }