url.js

Реализуйте абстракцию для работы с урлами. Она должна извлекать и менять части адреса. Интерфейс:

  • make(url) - Конструктор. Создает урл.
  • setProtocol(data, protocol) - Сеттер. Меняет схему.
  • getProtocol(data) - Селектор (геттер). Извлекает схему.
  • setHost(data, host) - Сеттер. Меняет хост.
  • getHost(data) - Геттер. Извлекает хост.
  • setPath(data, path) - Сеттер. Меняет строку запроса.
  • getPath(data) - Геттер. Извлекает строку запроса.
  • setQueryParam(data, key, value) - Сеттер. Устанавливает значение для параметра запроса.
  • getQueryParam(data, paramName, default = null) - Геттер. Извлекает значение для параметра запроса. Третьим параметром функция принимает значение по умолчанию, которое возвращается тогда, когда в запросе не было такого параметра
  • toString(data) - Геттер. Преобразует урл в строковой вид.
1
2
3
4
5
6
7
8
9
10
11
12
13
const url = make('https://hexlet.io/community?q=low');

setProtocol(url, 'http:');
toString(url); // 'http://hexlet.io/community?q=low'

setPath(url, '/404');
toString(url); // 'http://hexlet.io/404?q=low'

setQueryParam(url, 'page', 5);
toString(url); // 'http://hexlet.io/404?q=low&page=5'

setQueryParam(url, 'q', 'high');
toString(url); // 'http://hexlet.io/404?q=high&page=5'

Подсказки

  • Парсинг урла — url.parse()
  • Для парсинга параметров и формирования из них строки для запроса используйте модуль querystring
  • Собирать данные в url нужно самостоятельно
Успешных завершений: 77%

Последние код-ревью

Автор Дата обновления Версий
alexander-strekanov 26 нояб., 17:38 1
safer_bwd 26 нояб., 08:48 1
draber06 22 нояб., 01:47 1
euvgeniy 18 нояб., 21:27 1
avdey3 15 нояб., 12:39 1