Descomponer una URL

Crea una función llamada que recibe una cadena (URL) como entrada. Descompón la cadena y devuelve un objeto con las siguientes propiedades:

  • protocol: Este es el protocolo de la URL (p. ej., "http").
  • ipAdress: Debe contener la dirección IP (si es válida) de la URL o null.
  • subDomain: Debe contener el subdominio de la URL (p. ej., "www" o null).
  • domainName: Debe contener el dominio sin el subdominio (p. ej., "google.com" o null).
  • folderTree: Debe contener un arreglo de carpetas (p. ej., "www.google.com/test/image/index.html" ➞ ["test", "image"] o null)
  • targetFile: Debe devolver el archivo de destino.
    • p. ej. 1. "www.google.com/test/image" ➞ "image"
    • p. ej. 2. "www.google.com/test/index.html" ➞ "index.html" o null
  • argumentsFile: Debe devolver los argumentos del archivo de destino.
    • p. ej. "www.google.com/test/image?search=ok" ➞ "?search=ok" o null

Ejemplos

decomposeUrl("https://www.google.com/search/test.js?ok=1") ➞ {
  protocol: "https",
  ipAdress: null,
  subDomain: "www",
  domainName: "google.com",
  folderTree: (1) […],
  targetFile: "test.js",
  argumentsFile: "?ok=1"
}

decomposeUrl("https://edabit.com/new/challenge") ➞ {
  protocol: "https",
  ipAdress: null,
  subDomain: null,
  domainName: "edabit.com",
  folderTree: (1) […],
  targetFile: "challenge",
  argumentsFile: null
}

decomposeUrl("https://edabit.com/new/challenge/test.html") ➞ {
  protocol: "https",
  ipAdress: null,
  subDomain: null,
  domainName: "edabit.com",
  folderTree: (2) […],
  targetFile: "test.html",
  argumentsFile: null
}

Notas

N/A