Decompor uma URL

Crie uma função chamada que recebe uma string (URL) como entrada. Decomponha a string e retorne um objeto com as seguintes propriedades:

  • protocol: Este é o protocolo da URL (por exemplo, "http").
  • ipAdress: Deve conter o endereço IP (se for válido) da URL ou null.
  • subDomain: Deve conter o subdomínio da URL (por exemplo, "www" ou null).
  • domainName: Deve conter o domínio sem o subdomínio (por exemplo, "google.com" ou null).
  • folderTree: Deve conter um array de pastas (por exemplo, "www.google.com/test/image/index.html" ➞ ["test", "image"] ou null)
  • targetFile: Deve retornar o arquivo de destino.
    • por exemplo, 1. "www.google.com/test/image" ➞ "image"
    • por exemplo, 2. "www.google.com/test/index.html" ➞ "index.html" ou null
  • argumentsFile: Deve retornar os argumentos do arquivo de destino.
    • por exemplo, "www.google.com/test/image?search=ok" ➞ "?search=ok" ou null

Exemplos

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